suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/
내가 특히 오랜 기간동안 혼란스러워했던 부분은 JPA와 관련된 개념이었다. JPA 관련 서적을 읽을 때에는 분명 EntityManager를 통해 entity CRUD를 했는데, 실제 어플리케이션 코드를 보니 EntityManager는 찾아볼 수 없고 웬 Repository 인터페이스라는 놈만 쓰이고 있었다. 덕분에 내 안에서는 JPA, Hibernate, Repository에 대한 개념이 뒤섞이게 되었고, 개념을 바로 잡는 데에 꽤나 많은 노력을 기울여야만 했다.
Repository 클래스에서 @PersistenceContext를 이용하여
private EntityManager em;
를 주입받아 사용하는 것은 Raw JPA를 사용하는 것이고
Repository 인터페이스를 사용중이고
EntityManager를 다루지 않는 형태로 사용중이라면
Spring Data JPA를 사용하는 것이다.
'DB > JPA' 카테고리의 다른 글
No identifier specified for entity 문제 해결 (0) | 2020.11.10 |
---|---|
객체의 공유를 사전 차단하기 위해 @Embeddable클래스를 불변으로 만드는 것이다 (0) | 2020.10.14 |
JPA에서 파라미터 순서와 메서드명이 같아야 정상적으로 조회 (0) | 2020.10.12 |
댓글