나는 열심히로드 된 콜렉션 (lazy = "false"fetch = "subselect")에 대한 연관을 맵핑했다. 질의를 할 때 Hibernate를 사용하여 프로그래밍 방식으로 어떻게 해제 할 수 있습니까?어떻게 최대 절전 모드로 eager fetching을 프로그래밍 방식으로 끄시겠습니까?
답변
사실, 그 반대의 경우입니다. 매핑에서이 기능을 해제하고 쿼리에서 "가져 오기"를 사용하여 특정 유스 케이스에서 활성화하십시오.
그것은 Hibernate 팀이 보는 방식입니다. Hibernate는 프로퍼티에 대해 "no-fetch"를 지정하는 요청을 생성 할 방법이 없다 ...
나는 역사적인 이유로 몇 가지 일대 다 의존 관계를 열망했다. 수년에 걸쳐 많은 장소가 그것에 의존하게되었으므로 꺼지기가 어려웠습니다. 그러나 어떤 경우에는 열성적인 가져 오기가 어려워졌습니다. 테이블에서 더 큰 선택을 할 때마다 각 개체의 컬렉션 각각에 대해 100 개의 작은 하위 쿼리가 생성됩니다. 열심히 가져 오기를 실제로 덮어 쓰지 않고이 문제를 해결할 수있는 방법을 찾았습니다. 단지 유용하게 사용할 수 있습니다. 한 번에 모든 서브 페치를 수행하는 단일 쿼리를 작성하기 만하면됩니다. 이것은 하이버 네이트가 의존성 그래프를 걷고 100 개의 쿼리를 생성하는 대신 데이터베이스에 1 개의 물리적 쿼리를 만듭니다.
그래서 내가Query q = session.createQuery("from Customer c " +
"left join fetch c.vats v " +
"left join fetch v.klMemos bk " +
"left join fetch bk.ferryKlMemos");
한 고객이 많은 VAT 번호로
Query q = session.createQuery("from Customer c");
교체, 1 VAT 번호 등등 많은 klmemos하고 있습니다. 이전 상황에서는 먼저 고객 만 가져오고 최대 절전 모드에서는 종속 컬렉션 각각을 하나씩 가져 오기 시작합니다. 두 번째 폼은 모든 것을 하나의 네이티브 질의로로드 할 것이고, hibernate는 객체 캐시에 열망하는 콜렉션을 채우는 데 필요한 모든 것을 찾을 것이다. 누군가가 도움이되기를 바랍니다. 참고 : 여전히 열정적 인 페치를 피하려고 노력해야한다고 생각합니다 .-)
- 1. 프로그래밍 방식으로 iPhone 전원을 끄시겠습니까?
- 2. 최대 절전 모드로 선택
- 3. 최대 절전 모드로 제한됩니다.
- 4. 최대 절전 모드로 카운터 업데이트
- 5. 프로그래밍 방식으로 최대 절전 모드 일괄 변경
- 6. 데이터베이스간에 최대 절전 모드로 전환
- 7. 최대 절전 모드 - 최대 절전 모드로 데이터베이스에 java.net.URL을 저장하는 방법
- 8. HashMap을 최대 절전 모드로 유지하는 방법
- 9. 최대 절전 모드로 플러시 및 JTAUnexpectedRollbackException
- 10. 최대 절전 모드로 등록 정보/컬렉션로드를 비활성화하십시오.
- 11. 최대 절전 모드로 컬렉션을 업데이트하려면 어떻게해야합니까?
- 12. 응용 프로그램 코드에서 최대 절전 모드로 전환
- 13. 최대 절전 모드로 응용 프로그램 설정 유지하기
- 14. 선택없이 최대 절전 모드로 삽입 또는 업데이트
- 15. 최대 절전 모드로 Maven 프로젝트 만들기
- 16. 최대 절전 모드로 개체를 읽은 다음 StackOverflowError
- 17. WrongClassException eclipselink에서 최대 절전 모드로 전환
- 18. grails의 백그라운드 스레드에서 최대 절전 모드로 호출
- 19. 최대 절전 모드로 서비스 계층 생성
- 20. 많은 수의 모델링에서 최대 절전 모드로 모델링
- 21. 여러 VM에 대해 최대 절전 모드로 전환
- 22. 최대 절전 모드로 부모/자식 관계 문제
- 23. 최대 절전 모드로 다 대일 - 불량 사용?
- 24. boolean [] PostgreSQL을 최대 절전 모드로 매핑
- 25. 양방향 연결을 최대 절전 모드로 설정해야합니까?
- 26. 최대 절전 모드로 양방향 목록 매핑
- 27. noob 프로젝트를 봄/최대 절전 모드로 전환
- 28. 스레드를 최대 절전 모드로/다시 시작
- 29. Intellij 또는 Eclipse로 최대 절전 모드로 작업하기
- 30. 최대 절전 모드로 인덱스 생성하기 인덱스 인덱스
그게 제가 생각한 것입니다. 그렇게 할 수있는 방법이 있다면 내 운을 시험해보고있었습니다. 감사합니다 –
대단히 반갑습니다. 질문에 대한 답을 생각할 필요가있는 다른 것이 있습니까? 나는 대답을 받아 들인다. – KLE