gpt4 book ai didi

java - Hibernate 和两列上的复杂多对一

转载 作者:行者123 更新时间:2023-12-02 00:40:00 26 4
gpt4 key购买 nike

我有一个 BUSINESS 表,如下所示:

BUSINESS_ID | BRN | CODE | PARENT_ID

Business 可以有一个 parentBusiness,它由 child.parent_id->parent.brn 和 child.code->parent.code 连接而成code> 可以用查询来表示:

select * from business childbus left join business parentbus on childbus.parent_id=parentbus.brn and childbus.yppa_code=parentbus.yppa_code where childbus.business_id=?

如何为 business.parentBusiness 创建多对一关系?以下多对一映射创建从 PARENT_IDBRN 的链接,但如何从其中的 CODE 列获取约束?

<many-to-one name="parentBusiness" class="Business" column="PARENT_ID" property-ref="brn"/>

编辑

下面的答案建议我尝试使用公式。根据文档,公式只需要返回对象的 PK,它将弄清楚如何填充自身。这是我所在的位置:

<many-to-one name="parentBusiness">
<formula>(select parentBusiness.business_id from business parentBusiness where parentBusiness.brn=parent_id and parentBusiness.code=code)</formula>
</many-to-one>

但这会产生一个sql错误

...
from Business business0_
left outer join Business business1_ on
(select parentBusiness.business_id from business parentBusiness where parentBusiness.brn=business0_.parent_id and parentBusiness.code=business0_.code)=business1_.BUSINESS_ID

因为,当然

ORA-01799: a column may not be outer-joined to a subquery

我的公式应该如何设置?

提前非常感谢。

最佳答案

你可以尝试使用formulaa属性。 here有一些关于如何使用它的文档...

关于java - Hibernate 和两列上的复杂多对一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6654778/

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