2011-11-04 3 views
0

이 특정 시나리오에서 두 개의 테이블 {A, B} 및 생성 된 JPA 클래스가 있다고 가정 해보십시오. 표 A에서 열 X에 FK 관계가있다 -> 표 B 및 표 A에서이 열 X 나는 "JPA 다중 조인 쿼리

@OneToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "X", referencedColumnName = "X", insertable = false, updatable = false). 

으로이 칼럼에있는 두 개의 테이블을 조인하는 명명 된 JPA 쿼리가 주석하고있다 엑스". 실행시 올바른 결과를 얻을 수 있지만 DB에 대해 여러 쿼리가 실행 중입니다. 에서 조인의 각 데이터가 일치하면 쿼리가 생성되어 DB에 대해 실행되는 것으로 나타납니다. 이것은 우리 데이터베이스에 과부하입니다. 내 이해에서, LAZY 가져 오기에서 JPA는 마스터 쿼리를 한 번만 실행하고 조인의 데이터 일치에 대한 추가 자식 쿼리를 생성하는 대신 전체 결과 집합을 다시 가져 오지 않을 것입니다.

답변

0

조인 쿼리를 수행하여 데이터를 가져옵니다. OneToOne을 지정하면, Hibernate는 두 객체를 연관시킨다. LAZY은 연결된 객체를 가져 오기위한 요청이 에 해당 객체가 일 때만 실행된다는 것을 의미합니다.