긴급한 연결과 일반적인 연결의 차이점을 최대 절전 모십시오
관련 소개 및 설명은 코드에 댓글을 달았으므로 참조 할 수 있습니다.
패키지 com.baidu.test; import java.util.arraylist; import java.util.linkedhashset; import java.util.list; import org.hibernate.query; import org.hibernate.session; import org.hibernate.session.hibernate.transaction; 수입; org.hibernate.cfg.configuration; import org.hibernate.service.serviceregistry; import org.hibernate.service.serviceregistrybuilder; import org.junit.after; import org.junit.be -junit.test; import org.junit.test; com.baidu.leftjoin.employee; public class testhql_leftjoin {private sessionfactory sessionfactory; 개인 세션 세션; 개인 거래 트랜잭션; @before public void init () {구성 구성 = 새로운 구성 (). configure (); serviceregistry serviceregistry = new serviceRegistryBuilder (). .ApplySettings (configuration.getProperties ()) .BuildServicEergistry (); sessionFactory = configuration.buildSessionSESSIONFACTORY (SERVICEREGISTRY); session = sessionFactory.Opensession (); transaction = session.BegIntransaction ()}@ destroy(){transaction.commit();session.close();sessionFactory.close();}// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following example is from 1 To many~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/** * * Erection left outer join: Features are: If the left table does not meet the conditions, the left table does not meet the conditions* 1. The LEFT JOIN FETCH keyword represents the urgent left outer join retrieval strategy. * 2. List () 메소드는 반환 된 세트의 엔티티 객체에 대한 참조를 저장합니다. 각 부서 객체와 관련된 직원 컬렉션은 초기화됩니다. * 모든 관련 엔티티 객체를 저장합니다. * 3. 쿼리 결과에는 중복 요소가 포함될 수 있으며, 해시 세트를 통해 중복 요소를 필터링 할 수 있습니다. * * 중간 복제 : * 메소드 사용 * 문자열 HQL = "부서 D에서 별개의 D를 선택하십시오. * query query = session.createquery (HQL); * * List <Secrths = query.list (); * system.out.println (depts.size ()); * * 메소드 2 * 문자열 HQL = "부서 d에서 왼쪽으로 왼쪽 가입 D.emps"; * query query = session.createquery (HQL); * * * List <Section> depts = query.list (); * * depts = new ArrayList <> (New LinkedHashset (depts)); * system.out.println (depts.size ()); * * for (부서 dept : depts) { * system.out.println (dept.getname () + "-" + dept.getemps (). size ()); *} * */@test public void testleftjoinfetch () {// string hql = "Depattion D left left left fetch d.emps"; // query query = session.createquery (hql); // list> depts = query.list (); // system.out.println (); // strize. fetch d.emps "; query query = session.createquery (HQL); list <bustry> depts = query.list (); System.out.println (depts.size ()); depts = new arraylist <> (new LinkedHashset (depts)); system.out.println (deptratt.size (); Dept : depts) {System.out.println (dept.getname () + "-" + dept.getemps (). size ());}}} *} *} *} *}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}. * 2. 객체 배열 유형은 List () 메소드 * 3에 의해 리턴 된 컬렉션에 저장됩니다. 구성 파일을 기반으로 직원 컬렉션의 검색 전략을 결정합니다. * 4. List () 메소드에 의해 컬렉션을 부서 개체 만 포함하도록 컬렉션을 반환하려면 * HQL 쿼리 문에서 선택 키워드 * *를 사용하여 그러한 진술의 결과를 쿼리 할 수 있습니다. * query query = session.createquery (HQL); * * list <object []> results = query.list (); * system.out.println (results.size ()); * * 중복 제거 : * 중복을 제거하기 위해 고유 한 방법 만 사용하십시오 * * 문자열 HQL = "부서 d에서 D.Eclps D.emps를 선택하십시오."; * query query = session.createquery (HQL); * * * List <Section> depts = query.list (); * system.out.println (depts.size ()); * * for (부서 dept : depts) { * system.out.println (dept.getname () + dept.getemps (). size ()); *} * */@test public void testleftjoin () {String HQL = "Depational D.Ect D.emps"; query query = session.createquery (HQL); List <Section> Depts = Query.list (); System.out.println (depts.size ()); for (deptrice.ff) {System.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out.out. + dept.getemps (). size ());}}/** * 충동적인 내부 연결 : 기능은 다음과 같습니다. 기능은 다음과 같습니다. 왼쪽 테이블을 반환하지 말고 조건을 충족시키지 못하지만 내부 키워드 키워드는 긴급한 내부 연결을 나타냅니다. 내부 키워드는 생략 할 수 있습니다. 내부 연결 : * 내부 조인 키워드는 내부 연결을 나타내며 내부 키워드도 생략 할 수 있습니다. List () 메소드 세트에 저장된 각 요소의 쿼리 결과 레코드는 객체 배열 유형입니다. 각 요소는 객체 배열 유형 * 목록 () 메소드에 의해 컬렉션을 부서 객체 만 포함시키기 위해 컬렉션을 반환하려면 HQL 쿼리 문 * * */@test public void testinnerjoinfetch () {// string hql = "lefting d. session.createquery (HQL); List <Secral> depts = query.list (); depts = new ArrayList <> (new LinkedHashset (depts)); System.out.println (depts.size ()); for (부서 dept : depts) {system.out.println (dept.getname ()). " + dept.getemps (). );}} // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@테스트 public void testleftjoinfetch2 () {string hql = "직원 e 왼쪽 왼쪽 왼쪽에 가입 fetch e.dept"; query query = session.createquery (hql); list <ceplyee> emps = query.list (); system.out.println (Emplyee emps); emp.getDept ());}}}요약
위의 내용은 최대 절전 모드 긴급 연결과 일반적인 연결의 차이에 대한이 기사의 전체 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구들은이 사이트를 계속 참조 할 수 있습니다.
최대 절전 모드의 긴급 로딩 문제에 대한 간단한 토론 (다중 외국 키 협회)
최대 절전 모드에서 추가, 삭제, 수정 및 검색을위한 작업 코드에 대한 자세한 설명
단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!