HIbernate 멀 티 테이블 조회 4 가지 방법

6778 단어 학습 노트
HIbernate 멀 티 테이블 조회 4 가지 방법
hibenate 의 4 가지 조회 방법 중 모두 자주 사용 되 는 것 은 아 닙 니 다. 개인의 프로젝트 요구 에 따라 ps 를 수정 하 십시오. 다음 방법 명 은 모두 본인 이 작성 한 것 입 니 다. 정식 파일 에 사용 하지 마 십시오.
새 검색 클래스 방법
직접 삽입 방법
직접 조회 방법
직접 조회 방법 축소판
새 검색 클래스 방법
이 방법 은 이미 알 고 있 는 조회 내용 을 이용 하여 enity (실체 류 가 있 는 package) 층 에 실체 류 를 새로 만들어 조회 내용 을 저장 하 는 것 입 니 다.예 를 들 어 두 개의 실체 유형 이 있 는데 반 과 학교 가 있 는데 그 중에서 학 교 는 반 에 대해 한 쌍 의 다 관계 이다.
    //hibernate hql   Tclass      
    String hql = "from Tclass t inner join t.school";
    //Classes       ,              
    List list = new ArrayList();
    //       
    Session session = HibernateSessionFactory.getSession();
    //  hql        
    Query q = session.createQuery(hql);
    //           
    Iterator it = q.iterate();
    //        ,  Classes      ,   Classes     
     while(it.hasNext()){
         Object[] obj = (Object[]) it.next() ;
         System.out.println(".....");
         Classes cl = new Classes() ;
         Tclass tc = (Tclass) obj[0] ;
         School sch = (School) obj[1] ;
         cl.setCid(tc.getCid()) ;
         cl.setCname(tc.getCname()) ;
         cl.setSid(sch.getSid()) ;
         cl.setSname(sch.getSname()) ;
         list.add(cl) ;
       }

이후 List 의 반환 값 을 가 져 와 출력 합 니 다. 이 방법 은 hibenate 의 게 으 른 로드 메커니즘 의 장점 을 이용 하여 필요 한 필드 의 데이터 단점 을 명확 하 게 표시 합 니 다. 과정 이 번 거 롭 고 코드 재 활용 성 이 떨 어 집 니 다.
직접 삽입 방법
이 방법 은 실체 류 에 기 존의 연결 방법 을 이용 하여 할당 수출 을 하 는 것 이다. 예 를 들 어 두 개의 실체 류, 학급 과 학교 가 있 는데 그 중에서 학 교 는 반 에 대해 한 쌍 의 다 중 관계 이다.
    //hibernate hql   Tclass      
    String hql = "from Tclass t inner join t.school";
    List list = new ArrayList();
    //       
    Session session = HibernateSessionFactory.getSession();
    //  hql        
    Query q = session.createQuery(hql);
    //           
    Iterator it = q.iterate();
    //        ,   school   tclass      get   
    while(it.hasNext()){
             Object[] obj =  (Object[]) it.next() ;
             System.out.println("....");
             Tclass tc = (Tclass) obj[0] ;
             School sch = (School) obj[1] ;
             tc.setSchool(sch) ;              
             list.add(tc) ;
           }

이후 List 의 반환 값 을 가 져 와 출력 하 는 장점: 코드 내용 이 뚜렷 하고 단점 이 뚜렷 합 니 다. 여전히 hibenate 의 게 으 른 로드 체 제 를 사용 합 니 다.
직접 조회 방법
이 방법 은 실체 류 에 기 존의 연결 방법 을 이용 하여 직접 수출 하 는 것 이다. 예 를 들 어 두 개의 실체 류, 학급 과 학교 가 있 는데 그 중에서 학 교 는 학급 에 대해 한 쌍 의 다 관계 이다.
    //hibernate hql   Tclass      
    String hql = "from Tclass t inner join fetch t.school";
    List<Tclass> list = new ArrayList<Tclass>();
    //       
    Session session = HibernateSessionFactory.getSession();
    //  hql        
    Query q = session.createQuery(hql);
    //      
    return q.list();

이후 List 의 반환 값 을 가 져 와 출력 하 는 장점: 코드 내용 이 뚜렷 하고 hibenate 게 으 른 로드 체 제 를 거치 지 않 아 코드 의 효율 을 높 였 습 니 다.
직접 조회 방법 축소 판
이 방법 은 실체 류 에 기 존의 연결 방법 을 이용 하여 직접 수출 하 는 것 이다. 예 를 들 어 두 개의 실체 류, 학급 과 학교 가 있 는데 그 중에서 학 교 는 학급 에 대해 한 쌍 의 다 관계 이다.
    //hibernate hql   Tclass      
    String hql = "from Tclass";
    List<Tclass> list = new ArrayList<Tclass>();
    //       
    Session session = HibernateSessionFactory.getSession();
    //  hql        
    Query q = session.createQuery(hql);
    //      
    return q.list();

이후 List 의 반환 값 을 가 져 와 출력 하 는 장점: 코드 내용 이 뚜렷 하고 단점: hibenate 게 으 른 로드 메커니즘 사용

좋은 웹페이지 즐겨찾기