我在不同的表中有数据,但在同一个数据库中,所有这些都有相同的模式。根据一些运行时变量,我想在查询 Hibernate 时选择使用哪个表。这可能吗?
请注意,我只使用 Hibernate 将表数据读取到对象。
一个解决方案(我认为)是*.hbm.xml
每个表一个 -file 和一个 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
特别是考虑到-files之间的唯一区别是 table 属性。
有没有更好的方法来做到这一点?理想情况下与一个 Class.hbm.xml
.