본문 바로가기
DB/JPA

JPA, Hibernate, 그리고 Spring Data JPA의 차이점

by fabxoe 2020. 10. 15.

suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/

 

JPA, Hibernate, 그리고 Spring Data JPA의 차이점

개요 Spring 프레임워크는 어플리케이션을 개발할 때 필요한 수많은 강력하고 편리한 기능을 제공해준다. 하지만 많은 기술이 존재하는 만큼 Spring 프레임워크를 처음 사용하는 사람이 Spring 프레�

suhwan.dev

내가 특히 오랜 기간동안 혼란스러워했던 부분은 JPA와 관련된 개념이었다. JPA 관련 서적을 읽을 때에는 분명 EntityManager를 통해 entity CRUD를 했는데, 실제 어플리케이션 코드를 보니 EntityManager는 찾아볼 수 없고 웬 Repository 인터페이스라는 놈만 쓰이고 있었다. 덕분에 내 안에서는 JPA, Hibernate, Repository에 대한 개념이 뒤섞이게 되었고, 개념을 바로 잡는 데에 꽤나 많은 노력을 기울여야만 했다.

 

 

 

Repository 클래스에서 @PersistenceContext를 이용하여

private EntityManager em;

를 주입받아 사용하는 것은 Raw JPA를 사용하는 것이고

 

 

Repository 인터페이스를 사용중이고

EntityManager를 다루지 않는 형태로 사용중이라면

Spring Data JPA를 사용하는 것이다.

댓글