Home
>
Spring
>
๐[Spring] JPA์ Hibernate๋ ์ด๋ค ๊ด๊ณ์ธ๊ฐ์?
Spring
Framework
๐[Spring] JPA์ Hibernate๋ ์ด๋ค ๊ด๊ณ์ธ๊ฐ์?
-
JPA(Java Persistence API)์ Hibernate๋ ๋ฐ์ ํ ๊ด๊ณ๊ฐ ์์ง๋ง ์๋ก ๋ค๋ฅธ ๊ฐ๋
์
๋๋ค.
- ๊ทธ๋ค์ ๊ด๊ณ๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ ๊ฐ๊ฐ์ ์ ์์ ์ญํ ์ ์ดํด๋ณผ ํ์๊ฐ ์์ต๋๋ค.
1๏ธโฃ JPA(Java Persistence API).
-
JPA(Java Persistence API)๋ ์๋ฐ ํ์ค ๋ช
์ธ(Java Specification)๋ก, ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Relational Database, RDB)๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ORM(Obeject-Relational Mapping)์ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค(Interface) ๋ชจ์์
๋๋ค.
-
JPA(Java Persistence API)๋ ์๋ฐ ๊ฐ๋ฐ์์๊ฒ ORM(Object-Relational Mapping) ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํด ๋์
๋ ํ์ค API๋ก, ํน์ ๊ตฌํ์ฒด๊ฐ ์๋๋๋ค.
- ์ฆ, JPA(Java Persistence API) ์์ฒด๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์๊ณ , ORM(Object-Relational Mapping)์ ํ์ค ๊ท๊ฒฉ๋ง ์ ์ํฉ๋๋ค.
-
JPA(Java Persistence API)๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๊ฐ ํน์ ๊ตฌํ์ฒด์ ์ข
์๋์ง ์๋๋ก ์ถ์ํ(Abstraction)๋ ์ธํฐํ์ด์ค(Interface)๋ฅผ ์ ๊ณตํฉ๋๋ค.
2๏ธโฃ Hibernate
-
Hibernate๋ JPA(Java Persistence API) ํ์ค์ ๊ตฌํํ ORM(Object-Relational Mapping) ํ๋ ์์ํฌ ์ค ํ๋์
๋๋ค.
- ์ฆ, JPA(Java Persistence API)๊ฐ ์ ์ํ ๊ท๊ฒฉ์ ์ฌ๋ฌ ๊ตฌํ์ฒด ์ค ํ๋๋ก, ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ตฌํ์ฒด์
๋๋ค.
-
Hibernate๋ JPA(Java Persistence API)๋ฅผ ๊ตฌํํ๋ฉด์, ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ ORM(Object-Relational Mapping) ํ๋ ์์ํฌ์
๋๋ค.
- ์๋ฅผ ๋ค์ด, ์บ์ฑ, ์คํค๋ง ์๋ ์์ฑ, HQL(Hibernate Query Language) ๋ฑ์ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ํฌํจํฉ๋๋ค.
-
Hibernate๋ JPA(Java Persistence API)์ ํ์ค ์ธํฐํ์ด์ค(Interface)๋ฅผ ์ง์ํ๋ฉด์๋, ์์ฒด์ ์ธ API(Application Programming Interface)๋ ํจ๊ป ์ ๊ณตํ์ฌ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค.
3๏ธโฃ ๊ด๊ณ ์์ฝ.
- JPA(Java Persistence API)๋ ORM(Object-Relational Mapping)์ ํ์ค ์ธํฐํ์ด์ค(Interface)๋ก์, ๊ตฌํ์ฒด๊ฐ ํ์ํฉ๋๋ค.
-
Hibernate๋ JPA(Java Persistence API) ํ์ค์ ๊ตฌํํ ๊ตฌํ์ฒด ์ค ํ๋์
๋๋ค.
- ์ฆ, Hibernate๋ JPA(Java Persistence API)์ ๊ท๊ฒฉ์ ๋ฐ๋ฅด๋ฉด์๋ ์์ฒด์ ์ธ ํ์ฅ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ORM(Object-Relational Mapping) ํ๋ ์์ํฌ(Framework)์
๋๋ค.
4๏ธโฃ JPA์ Hibernate์ ์ฌ์ฉ ๋ฐฉ์.
1๏ธโฃ JPA(Java Persistence API) ์ฌ์ฉ.
- JPA(Java Persistence API)๋ ์ธํฐํ์ด์ค(Interface)์ด๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๊ฐ ํน์ ORM(Object-Relational Mapping) ๊ตฌํ์ฒด์ ์์กดํ์ง ์๋๋ก ํฉ๋๋ค.
- ๊ฐ๋ฐ์๋ JPA(Java Persistence API) ํ์ค์ ๋ฐ๋ฅด๋ฉด์, Hibernate ๊ฐ์ ๊ตฌํ์ฒด๋ฅผ ์ ํํด ์ฌ์ฉํ ์ ์์ต๋๋ค.
๐ ์์
@PersistenceContext
private EntityManager entityManager;
public void saveUser(User user) {
entityManager.persist(user); // JPA ํ์ค API ์ฌ์ฉ
}
2๏ธโฃ Hibernate ์ฌ์ฉ
- Hibernate๋ JPA๋ฅผ ๊ตฌํํ๋ฉด์ ์์ฒด์ ์ธ API(Application Programming Interface)๋ ์ ๊ณตํฉ๋๋ค.
- ๊ฐ๋ฐ์๋ JPA(Java Persistence API) ํ์ค API(Application Programming Interface)๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, Hibernate์ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด Hibernate์ API(Application Programming Interface)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๐ ์์
Session session = sessionFactory.openSession();
session.save(user); // Hibernate ๊ณ ์ API ์ฌ์ฉ
5๏ธโฃ ๊ฒฐ๋ก .
- JPA(Java Persistence API)๋ ORM(Object-Relational Mapping)์ ์ํ ํ์ค API์ด๊ณ , Hibernate๋ ๊ทธ ํ์ค์ ๊ตฌํํ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ฒด์
๋๋ค.
- JPA(Java Persistence API)๋ ๋
๋ฆฝ์ ์ด์ง๋ง, Hibernate๋ JPA๋ฅผ ๋ฐ๋ฅด๋ฉฐ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- Hibernate๋ฅผ ์ฌ์ฉํ๋ฉด JPA(Java Persistence API) ํ์ค ์ธํฐํ์ด์ค๋ก ๊ฐ๋ฐํ๋ฉด์๋ ํ์ํ ๊ฒฝ์ฐ Hibernate์ ๊ณ ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.