2

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 のみから個別にレコードを取得する方法はありますか。

4

1 に答える 1

1

polymorphism="explicit"ur class タグに属性を追加 します。

コード:

 <class name="com.mypackage.model.Table1" table="Table1" entity-name="Table1" polymorphism="explicit">
于 2012-12-07T16:43:30.967 に答える