4

休止状態の xml マッピング構成で立ち往生しています。

MSSQL データベースに外部キー制約を持ついくつかのテーブルを作成しました。

Table ItemsBase 
ID       int   primary-key
ItemID   int   unique index
... some more columns

Table Others
ID       int   primary-key
ItemID   int   unique index
... some more columns

外部キー制約は、列 "ItemID" を使用してこれら 2 つのテーブルを接続するように構成されています。

私の ItemsBase.hbm.xml ファイルは次のようになります。

<hibernate-mapping>
    <class name="de.delife.sql.ItemsBase" table="ItemsBase" schema="dbo" catalog="Delife_Plenty">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="assigned" />
        </id> 
        <property name="itemId" type="java.lang.Integer">
            <column name="ItemID" unique="true" />
        </property>
        <set name="otherses" table="Others" inverse="true" lazy="true" fetch="select">
            <key property-ref="itemId">
                <column name="ItemID" />
            </key>
            <one-to-many class="de.delife.sql.Others" not-found="ignore" />
        </set>
    </class>
</hibernate-mapping>

Others.hbm.xml ファイルは次のようになります。

<hibernate-mapping>
    <class name="de.delife.sql.Others" table="Others" schema="dbo" catalog="Delife_Plenty">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="assigned" />
        </id>
        <many-to-one name="itemsBase" class="de.delife.sql.ItemsBase" fetch="select" property-ref="itemId">
            <column name="ItemID" unique="true" />
        </many-to-one>
    </class>
</hibernate-mapping>

私にはすべて問題ないように見えますが、プログラムを実行すると、休止状態のエラーが発生します。

property [itemId] not found on entity [de.delife.sql.Others]

ItemsBase と ItemsProperties という名前のテーブルの間に確立された関係があり、それは機能しますが、この「きれいな」テーブル「その他」では立ち往生しています。

誰かがこの問題について私を助けてくれれば幸いです。事前にt​​hx。

4

2 に答える 2

2

このようにしてみてください。私は試してみましたが、それは私のために働いています。

<set name="otherses" table="Others"  inverse="true" lazy="true" fetch="select">
    <key column="itemId" foreign-key="itemId" property-ref="itemId"/>
    <one-to-many class="de.delife.sql.Others" not-found="ignore" />
</set> 
于 2016-09-28T09:30:04.737 に答える