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μ κ³ μ κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€.