gpt4 book ai didi

java - Hibernate:在非主键列上进行一对多映射

转载 作者:数据小太阳 更新时间:2023-10-29 02:10:55 25 4
gpt4 key购买 nike

我卡在了 hibernate 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”列连接这两个表。

我的 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>

对我来说一切看起来都很好,但是当我运行我的程序时出现 hibernate 错误:

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

我在 ItemsBase 和一个名为 ItemsProperties 的表之间建立了关系并且它有效,但是对于这个“漂亮”的表“Others”我被卡住了。

如果有人能在这件事上帮助我,我会很高兴。提前致谢。

最佳答案

这样试试。我试过了,它对我有用。

<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>

关于java - Hibernate:在非主键列上进行一对多映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19631378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com