2012-07-11 4 views
0

그냥 빠른 질문입니다. 두 테이블 A와 B를 결합하고자합니다. 여기서 a_fk는 A의 테이블 외래 키이고 b_pr은 B의 기본 키입니다. A와 B 사이의 관계는 일대일 양방향입니다. A 및 B는 A 및 B 테이블 엔터티 클래스에 해당합니다.
jpql 쿼리 "select b from A a, B b where a.a_fk=b.b_pr"; 이클립스가 컴파일되지 않아서 a_fk 열이 존재하지 않는다고 말하면서 컴파일이 실패합니다. 네이티브 SQL 쿼리를 만들고 동일한 SQL 문을 검사했지만, 물론 적절한 SQL로 변환했습니다. 그리고 이것은 작동합니다.JPQL이 외래 키를 찾을 수 없습니다.

질문 : JPQL은 외래 키를 지원하지 않습니다?

답변

0

JPQL은 엔티 사이 엔티티 및 연관을 사용합니다. 테이블, 열 및 외래 키는 사용하지 않습니다. 당신은 B를 모두 As를 선택합니다 당신이 그들의 B

select a from A a left join fetch a.b 

JPA에 대한 책을 읽기와 마찬가지로 모두를 선택합니다

, 쿼리가 있기 때문에,

select a from A a inner join a.b 

입니다 JPA에 대한 기본 개념을 파악하지 못했습니다.

+0

예, 저는 이것을 처음 사용합니다. 특별한 책들, JB Nizet? – alex

+1

나는 조언 할 책이 ​​없습니다. 하지만 Hibernate 문서는 매우 읽기 쉽다. http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/ –

관련 문제