다른 테이블에 있지만 동일한 데이터베이스에있는 모든 데이터가 동일한 스키마를 가지고 있습니다. 런타임 변수에 따라 Hibernate를 질의 할 때 사용할 테이블을 선택하고 싶습니다. 이것이 가능한가?Hibernate에서 n 개의 테이블을 1 개의 클래스로 런타임 단방향 매핑
최대 절전 모드를 사용하여 에만 테이블 데이터를 개체에 읽음을 유의하십시오.
ClassTable1.hbm.xml: <class name="Class" table="table1">...</class>
ClassTable2.hbm.xml: <class name="Class" table="table2">...</class>
ClassTable3.hbm.xml: <class name="Class" table="table3">...</class>
HibernateUtil.java:
getSessionFactoryTable1() {...} // load mapping ClassTable1.hbm.xml
getSessionFactoryTable2() {...} // load mapping ClassTable2.hbm.xml
getSessionFactoryTable3() {...} // load mapping ClassTable3.hbm.xml
미운 :
해결책은 (내가 생각하는) 테이블 당 하나의 *.hbm.xml
- 파일 및 테이블 당 하나의 SessionFactory를 할 것이다. 특히 *hbm.xml
-files의 유일한 차이점은 table 속성입니다.
이렇게하는 것이 더 좋은 방법이 있습니까? 이상적으로는 하나Class.hbm.xml
.
슬프게도 비슷한 상황이었습니다. 동일하거나 쉽게 조정 가능한 스키마를 사용하여 200 개의 테이블에 분산 된 엔티티에 대한 읽기 전용 액세스가 필요했습니다. 한 테이블에 매핑 된 뷰에 테이블을 결합하여이 문제를 실제로 해결하는 것을 피했습니다. 상황에 따라 이것이 현실적이라면 고려해 볼 수 있습니다. 그렇지 않으면 사람들이 어떤 솔루션을 가지고 있는지보고 관심을 가질 것입니다 ... –