POJO を使用して 2 つのテーブル (メインとバックアップ) を定義しています。両方の XML クラスが同じ Java クラスを参照しています。
参照 : Hibernate XML マッピング ファイルで同じ POJO を複数のテーブルにマッピングする
<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 がマップされていません」というエラーが表示されます
table1 と Table2 のみから個別にレコードを取得する方法はありますか。