У меня есть данные в разных таблицах, но в одной базе данных, каждая из которых имеет одну и ту же схему.В зависимости от некоторой переменной времени выполнения, я хочу выбрать, какую таблицу использовать при запросе Hibernate.Возможно ли это?
Обратите внимание, что я использую Hibernate только для чтения табличных данных для объектов.
Решением (я думаю) будет один *.hbm.xml
-файл на таблицу и один SessionFactory на таблицу:
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
-файлами - это атрибут таблицы.
Есть ли какой-нибудь более причудливый способ сделать это?В идеале с one Class.hbm.xml
.