[JPA] JPQL 쿼리 설명

Posted by nkjok
2025. 1. 24. 13:59 낙서장[1]/3. JPA
반응형

 

String jpql = "SELECT o FROM Order o JOIN o.customer c ON o.customer_id = c.id"

 

 

이 쿼리에서 Order 테이블과 Customer 테이블을 조인할 때 사용되는 컬럼은 Order 테이블의 customer_id 컬럼과 Customer 테이블의 id 컬럼이다. 

 

조인 관계

Order 테이블                      Customer 테이블
| id | order_date | total_amount | customer_id |   JOIN   | id | name | email | phone |
|----|------------|--------------|-------------|    ON    |----|------|-------|-------|
| 1  | 2023-01-01 | 10000        | 101         |   <-->   | 101| John | john@example.com | 123-4567 |
| 2  | 2023-01-02 | 20000        | 102         |          | 102| Jane | jane@example.com | 234-5678

Order 테이블의 customer_id 컬럼과 Customer 테이블의 id 컬럼을 기준으로 조인하는 것을 알 수 있다. customer_id 값이 Customer 테이블의 id 값과 일치하는 레코드를 찾아서 조인한다는 의미다

 

해설) o.customer는 Order 엔티티에서 Customer 엔티티와 연관된 필드를 나타낸다

Order 엔티티에는 Customer 엔티티와의 연관 관계를 나타내는 필드가 있다. 이 필드는 보통 ManyToOne 어노테이션을 사용하여 매핑되며, 이는 여러 개의 Order가 하나의 Customer에 속할 수 있다는 것을 의미한다

반응형