gpt4 book ai didi

java - 使用复合备用键映射多对一关系

转载 作者:行者123 更新时间:2023-11-30 08:20:24 24 4
gpt4 key购买 nike

我有两个具有以下关系的实体 A 和 B

  1. A 中的外键由不属于 B 的主键(备用键)的两列(复合)组成;
  2. A和B之间的基数为[*]--[0..1],即A中的外键可以为null,多对一关系可选;
  3. 关系是单向的 A --> B。我想通过连接在 A 中热切地加载 B。

如何为 A 和 B 编写 hibernate 映射 .hbm( hibernate 3,无注释)?

最佳答案

您可以在父类中创建复合标识符属性(例如 A):

    <properties name="ParentNaturalId">
<property name="prop1" column="prop_1" />
<property name="prop2" column="prop_2" />
</properties>

并且客户端通过这种多对一关联引用父级:

    <many-to-one name="parent" class="B" not-null="false" not-found="ignore" property-ref="ParentNaturalId" fetch="join">
<column name="b_prop_1" />
<column name="b_prop_2" />
</many-to-one>
  1. 查看 not-found="ignore"多对一属性:

not-found (optional - defaults to exception): specifies how foreignkeys that reference missing rows will be handled. ignore will treat amissing row as a null association.

  1. 查看 fetch="join"多对一属性:

fetch (optional - defaults to select): chooses between outer-joinfetching or sequential select fetching.

关于java - 使用复合备用键映射多对一关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26088234/

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