hibernate join 예제

이렇게 하면 클래스의 모든 인스턴스가 반환됩니다. 고양이. 자동 가져오기가 기본값이므로 일반적으로 클래스 이름을 한정할 필요는 없습니다. 예: 이 예제의 소스 코드는 다운로드할 zip 파일의 패키지입니다. JOIN FETCH 문의 FETCH 키워드는 JPA에 따라 다릅니다. 지속성 공급자는 쿼리 내의 2개의 데이터베이스 테이블을 조인할 뿐만 아니라 반환된 엔터티에 대한 연결을 초기화하도록 지시합니다. JOIN 및 LEFT JOIN 문과 함께 사용할 수 있습니다. 다음 예제에서는 «Janssen»이라는 이름의 저자와 책을 모두 선택합니다. 데이터베이스에 특정 작성자용 책이 포함된 경우 쿼리는 이를 Object[]의 두 번째 요소로 반환합니다. 그렇지 않으면 해당 배열 요소가 null입니다. «조인 문을 구성하려면 HQL 또는 NativeSql»을 사용합니다.

예를 들어 이제 join 키워드를 사용하여 동일한 두 엔터티를 명시적으로 조인합니다. 사용자와 게시물은 모두 관련이 없으며 조인을 수행할 수 있는 공통 열이 없습니다. 이제 우리는 우리의 maven 프로젝트에서 리소스 디렉토리에서 최대 절전 모드 구성 파일 hibernate.cfg.xml을 만들 것입니다. 최대 절전 모드 마법사는 다음과 같습니다 : 내 예를 들어 MySQL 데이터베이스를 사용하고 있으며, 아래 스크립트는 두 개의 테이블 Employee 및 Address를 만듭니다. 그들은 일대일 매핑을 가지고 있으며 내 예제를 위해 몇 가지 데모 데이터를 삽입하고 있습니다. 문자열 hql = «부서.departmentname :dept_name»과 같은 직원으로부터 . 이 문은 기본적으로 내부 조인인 암시적 조인 문을 보여 주며, 이 문은 기본적으로 내부 조인입니다. 문은 employee 개체가 부서를 외래 키로 가지고 있기 때문에 dept_id의 내부 조인입니다.

JPQL에서는 연결 매핑을 기반으로 조인 문을 정의해야 합니다. 이 매핑은 외래 키 및 기본 키 열의 이름을 제공합니다. 이렇게 하면 join 문의 정의 가 더 쉬워지지만 조건자 추가는 추가할 수 없습니다. 이 예제에서는 외부 조인을 사용하여 모든 대륙에 대해 하나 이상의 행이 반환되도록 합니다. 또한 추가 조인 조건을 제공하는 조항도 포함됩니다. 다음은 «최대 절전 모드»라는 단어가 포함된 책을 작성한 모든 작성자 엔터티를 반환하는 JPQL 쿼리의 예입니다. Book 엔터티와 작성자 엔터티를 조인하고 WHERE 절에서 책의 제목 특성을 사용합니다. 관련없는 두 엔터티를 조인해야 하는 경우 최소 최대 절전 모드 5.1로 업그레이드해야 합니다. 그렇지 않으면 equijoin을 사용하지 않으려면 더 이상 JPQL 또는 HQL을 사용할 수 없습니다. 이전 버전의 최대 절전 모드의 경우 관련없는 엔터티에 대해 외부 조인이 필요한 경우 네이티브 SQL 쿼리를 사용하여만 수행할 수 있습니다.

SQL 문의 로깅을 활성화한 후 최대 절전 모드가 JPQL 쿼리에 대해 다음 문을 생성하는 것을 볼 수 있습니다. 정의된 다대다 연결을 사용하여 Author 테이블을 연결 테이블 BookAuthor와 조인합니다.