728x90
- EntityManager.find() 메소드를 사용하면 식별자로 엔티티 하나를 조회할 수 있다. 이렇게 조회한 엔티티에 객체 그래프 탐색을 사용하면 연관된 엔티티들을 찾을 수 있다. 이 둘은 가장 단순한 검색 방법이다.
- 식별자로 조회 EntityManager.find()
- 객체 그래프 탐색(예: a.getB().getC())
- ORM을 사용하면 데이터베이스 테이블이 아닌 엔티티 객체를 대상으로 개발하므로 검색도 테이블이 아닌 엔티티 객체를 대상으로 하는 방법이 필요하다.
- JPQL은 이런 문제를 해결하기 위해 만들어졌는데 다음과 같은 특징이 있다.
- 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리다.
- SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다.
- JPQL은 엔티티 객체를 대상으로 하는 객체지향 쿼리다.
- JPQL을 사용하면 JPA는 이 JPQL을 분석한 다음 적절한 SQL을 만들어 데이터베이스를 조회한다. 그리고 조회한 결과로 엔티티 객체를 생성해서 반환한다.
출처 : Java 표준 ORM JPA 프로그래밍 (저자 김영한)
728x90
'JPA' 카테고리의 다른 글
페이징 API (0) | 2022.06.15 |
---|---|
프로젝션 NEW 명령어 (0) | 2022.06.14 |
지연 로딩(Lazy Loading) - feat. 프록시 (0) | 2022.06.14 |
임베디드 타입(@Embeddable, @Embedded) (0) | 2022.06.13 |
@MappedSuperclass (0) | 2022.06.13 |