異なるテーブルにデータがありますが、同じデータベースにあり、それらはすべて同じスキーマを持っています。いくつかのランタイム変数に応じて、Hibernate を照会するときに使用するテーブルを選択したいと考えています。これは可能ですか?
Hibernate のみを使用して、テーブル データをオブジェクトに読み取ることに注意してください。
解決策 (私が思うに) は、*.hbm.xml
テーブルごとに 1 つのファイルと、テーブルごとに 1 つの 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
はテーブル属性であることを考慮してください。
これを行うためのより洗練された方法はありますか?理想的には1 つ Class.hbm.xml
。