본문 바로가기
프로그래밍/Back-end

JPA JPQL 경로 표현식

by @GodWin 2024. 10. 23.

-

 

-
안녕하세요? 오늘은 JPA에서 JPQL의 경로 표현식 에 대해 알아보도록 하겠습니다.

 

-

경로 표현식


: 점(.)을 찍어 객체 그래프를 탐색하는 것
: 상태필드 / 연관필드로 나눠진다.

상태필드(state field) 경로 탐색의 끝, 더이상 탐색 불가
연관필드
(accociation field)
단일 값 연관필드 @ManyToOne, @OneToOne, 대상이 엔티티
컬렉션 값 연관필드 @OneToMany, @ManyToMany, 대상이 컬렉션


+

상태필드

: SELECT e.컬럼 FROM 엔티티 e
> 경로 탐색의 끝
>> 추가 탐색 불가

+

단일값 연관필드
(@ManyToOne, @OneToOne)

: SELECT e.단일연관관계객체 FROM 엔티티 e
> 묵시적 내부 JOIN 발생
> 추가 탐색 가능

+

컬렉션값 연관필드
(@OneToMany, @ManyToMany)

SELECT e.컬렉션연관관계객체 FROM 엔티티 e
> 묵시적 내부 JOIN 발생
> 추가 탐색 불가


-

묵시적 JOIN


: 경로 표현식에 의해,
묵시적으로 SQL 조인이 발생
> SELECT e.연관관계객체 from 엔티티 e
: 항상 내부 조인이 발생
: 컬렉션은 경로 탐색의 끝
> 명시적 조인을 통해 별칭을 얻어서 사용
: 경로 탐색은 주로 SELECT, WHERE 절에서 사용하지만,
묵시적 조인으로 인해 FROM (JOIN) 절에 영향이 미침

※ 묵시적 조인은, 조인이 일어나는 상황이 한눈에 파악하기 어렵다


※ 묵시적 조인이 아닌, 명시적 조인 사용 권장



-

명시적 JOIN


: JOIN 키워드를 직접 사용
> SELECT e FROM 엔티티 e JOIN e.연관관계객체 s



 


※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.

https://logger-debug.tistory.com/entry/JPA-QueryDSL-%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8CSQL-JDBC-MyBatis

 

JPA QueryDSL 네이티브SQL JDBC MyBatis

- -안녕하세요? 오늘은 JPA의 다양한 쿼리 방법에 대해서 알아보도록 하겠습니다. JPA에서는,JPQL ★★★JPQ CriteriaQueryDSL ★★★네이티브 SQLJDBC 직접 사용(MyBatis, SpringJdbcTemplate ...)등등 다양한 쿼

logger-debug.tistory.com

https://logger-debug.tistory.com/entry/JPA-%EC%BF%BC%EB%A6%AC-JPQL-%ED%8E%98%EC%9D%B4%EC%A7%95-%EC%A1%B0%EC%9D%B8-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC

 

JPA 쿼리 JPQL 페이징 조인 서브쿼리

- -안녕하세요? 오늘은, JPA의 쿼리 방법 중 하나인, JQPL에 대해 알아보도록 하겠습니다.※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.https://logger-debug.tistory.com/entry/JP

logger-debug.tistory.com

https://logger-debug.tistory.com/entry/JPA-JPQL-%ED%83%80%EC%9E%85-%ED%91%9C%ED%98%84%EC%8B%9D%EA%B3%BC-%EA%B8%B0%ED%83%80%EC%8B%9D-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EC%A1%B0%EA%B1%B4%EC%8B%9D%EA%B3%BC-%EA%B8%B0%EB%B3%B8-%ED%95%A8%EC%88%98

 

JPA JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수

- -안녕하세요? 오늘은 JPA의 JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 에 대해서 알아보도록 하겠습니다.※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.

logger-debug.tistory.com

https://logger-debug.tistory.com/entry/JPA-%EC%BF%BC%EB%A6%AC-%ED%8C%A8%EC%B9%98-%EC%A1%B0%EC%9D%B8-JPQL-FETCH-JOIN

 

JPA 쿼리 패치 조인 JPQL FETCH JOIN

- -안녕하세요? 오늘은 JPA에서 JPQL 패치(FETCH) 조인 에 대해 알아보도록 하겠습니다.※ JPA에서의 쿼리 방법에 대해서는, 아래 포스팅을 참조 부탁드리겠습니다.https://logger-debug.tistory.com/entry/JPA-Qu

logger-debug.tistory.com

https://logger-debug.tistory.com/entry/JPA-%EC%BF%BC%EB%A6%AC-JPQL-%EB%B2%8C%ED%81%AC-%EC%97%B0%EC%82%B0

 

JPA 쿼리 JPQL 벌크 연산

- -안녕하세요? 오늘은 JPA의 JPQL 중 벌크 연산에 대해 알아보도록 하겠습니다.-벌크 연산: 쿼리 한번으로, 여러 테이블 로우 변경: executeUpdate의 결과는 영향받은 엔티티 수를 반환: Update / Delete

logger-debug.tistory.com

 


오늘은 JPA에서 JPQL의 경로 표현식 에 대해서 알아보았습니다.
그럼 오늘도 즐거운 하루 되시길 바라겠습니다.