gpt4 book ai didi

不存在关系时的 Hibernate JOIN FETCH

转载 作者:行者123 更新时间:2023-12-04 17:48:32 25 4
gpt4 key购买 nike

我有一个带有@OneToMany 帐户子项的客户实体。我想执行 fetch join 以返回具有相应事件帐户的客户(具有 account.isActive = true)。如果客户没有任何帐户,也需要将其退回。

对于下面的JPQL,对于有非活跃账户的客户,确实过滤掉了,但是没有返回没有账户的客户:

   @NamedQuery(name = "Customer.findById", query = "SELECT c FROM Customer c LEFT JOIN FETCH c.accounts a WHERE c.id = :id AND a.isActive=true")

什么是编写查询的简洁方法,以便涵盖两种情况(没有账户的客户和有活跃账户的客户)?

最佳答案

所以,基本上,回答我自己的问题 - 解决方案非常简单:

 @NamedQuery(name = "Customer.findById", query = "SELECT c FROM Customer c LEFT JOIN FETCH c.accounts a WHERE c.id = :id AND (a is null OR a.isActive=true)")

关于不存在关系时的 Hibernate JOIN FETCH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47002944/

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