HIbernate 멀 티 테이블 조회 4 가지 방법
6778 단어 학습 노트
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 게 으 른 로드 메커니즘 사용
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
axios 요청 차단, 응답 차단,router 내비게이션 수위axios 요청 차단: 요청 헤더에 token 등을 통일적으로 추가할 수 있습니다 axios 응답 차단: 로그인 판단 내비게이션 선행 수위beforeEach: 로그인 여부를 판단할 수 있지만, 응답으로 차단하는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.