gpt4 book ai didi

java - Hibernate映射xml一对一(多对一)

转载 作者:行者123 更新时间:2023-12-01 10:10:10 27 4
gpt4 key购买 nike

我正在尝试映射两个具有一对一关系的类之间的关系。在互联网上查找后,似乎人们更喜欢使用多对一来映射它。

例如,有一个 Order 类和 Bill 类。比尔持有发票的 FK。

这是我为比尔绘制的 map :

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Mar 21, 2016 10:46:20 PM by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="domain.Bill" table="BILL">
<id name="id" type="int">
<column name="ID" />
<generator class="native" />
</id>

<many-to-one name="order" class="domain.Order" column="ORDER_ID" unique="true" not-null="true"/>
</class>
</hibernate-mapping>

正如您在上面所看到的,在我的 Bill 映射中,我可以指定 Fk 到 Order 的列,但是由于 Order 没有 Fk 到 Bill,我应该在 Order 映射中添加什么内容?

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Mar 21, 2016 10:46:20 PM by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="domain.Order" table="ORDER">
<id name="id" type="int">
<column name="ID" />
<generator class="native" />
</id>

<many-to-one name="bill" class="domain.Bill" ???? fetch="select"/>

</class>
</hibernate-mapping>

最佳答案

您应该尝试按原样映射它:一对一。

我知道人们推荐多对一的唯一原因是一对一关联的反面存在延迟加载问题。那么您可能想要在反面有一个假的一对多关联(毕竟它是多对一的唯一逻辑反面)。

但是,看看this answer不同的选择。

关于java - Hibernate映射xml一对一(多对一),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36167110/

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