我正在使用 POJO 来定义两个表(主表和备份表)。两个 XML 类都引用同一个 Java 类。
参考:将同一个 POJO 映射到 Hibernate XML 映射文件中的多个表
<hibernate-mapping>
<class name="com.mypackage.model.Table1" table="Table1" entity-name="Table1">
<id name="Id" type="java.lang.Long">
<column name="ID" />
<generator class="identity" />
</id>
<property name="name" type="string">
<column name="NAME" length="20" />
</property>
<property name="age" type="int">
<column name="AGE" />
</property>
</class>
<class name="com.mypackage.model.Table1" table="Table2" entity-name="Table2">
<id name="Id" type="java.lang.Long">
<column name="ID" />
<generator class="identity" />
</id>
<property name="name" type="string">
<column name="NAME" length="20" />
</property>
<property name="age" type="int">
<column name="AGE" />
</property>
</class>
</hibernate-mapping>
POJO定义:
public class Table1 implements Serializable {
private static final long serialVersionUID = -594654774484987124L;
private Long id;
private String Name;
private int Age;
// Getters and setters.... Removed...
}
我能够创建不同的表。并且还使用
session.saveOrUpdate(entityName, myObject)
API 我可以单独为这些表添加新记录。
检索时,我正在使用 HQL
Query query = session.createQuery("from Table1");
list = query.list();
它返回了 Table1 和 Table2 中的所有记录。如果我尝试给 Table2,则会显示错误“Table2 is not mapped”
是否有任何可以单独从表 1 和表 2 中检索记录。