gpt4 book ai didi

java - 是否可以使 Hibernate 3.1 为子实体生成左外连接?

转载 作者:行者123 更新时间:2023-12-01 13:11:22 25 4
gpt4 key购买 nike

进行编辑以反射(reflect)之前的遗漏:我想定义 0 到 1 行的关系,其中永远不会有超过 1 个子行:

...
@JoinColumn(name="INVENTORY_ID", referencedColumnName="INVENTORY_ID")
@OneToOne
private QOH qoh;
...

所以我的问题是我已经尝试了各种方法来使用 @OneToOne 而不使用 @JoinColumn 并使用它,无论我做什么,在选择字段子集时由 Hibernate 生成的 SQL 都会导致内部联接,这意味着具有无 QOH 记录不返回:

...
SELECT i.inventoryId,i.name,i.qoh.quantity FROM Item i;
...

如果我完全控制数据库,我会在创建项目时强制创建 QOH 记录,但我不控制数据库,也不控制对其的访问。 Hibernate 可以为子实体执行此操作吗?:

...
SELECT ... FROM Item i LEFT OUTER JOIN QOH q ON q.INVENTORY_ID = i.INVENTORY_ID
...

而不是:

...
SELECT ... FROM Item i, QOH q WHERE q.INVENTORY_ID = i.INVENTORY_ID
...

最佳答案

在您的 Item 实体中尝试此操作,

    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER, optional = true)
private QOH qoh;

这实际上在 Item 和 QOH 之间创建了 1 到 0..1 的关系。

这将生成左外连接。

关于java - 是否可以使 Hibernate 3.1 为子实体生成左外连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837325/

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