gpt4 book ai didi

java - HQL中空引用对象的引用属性

转载 作者:行者123 更新时间:2023-12-02 13:42:52 24 4
gpt4 key购买 nike

这里我有两个Entity类。

@Table(name = "AC_ACCOUNT_MASTER")
public abstract class Account implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Column(name = "a_name")
private String name;
}

还有

@Table(name = "AC_VOUCHER_MASTER")
public class Voucher implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

private Double amt;

@ManyToOne
private Account drAc;

@ManyToOne
private Account crAc;

}

AC_VOUCHER_MASTER 表中有 10 行,其中 AC_VOUCHER_MASTER 表中有 4 个 drAc 数据为 null

session.createQuery("select v.id, v.amount, v.drAc.id,  v.crAc.id  from Voucher v").list();

上面的查询返回 10 个结果(尽管 4 个 drAcnull)。但是,当我放置名称引用 (v.drAc.name) 时,它仅返回 drAc 不为 null 的那些行(6 行)。

"select v.id, v.amount, v.drAc.id, v.drAc.name, v.crAc.id , v.crAc.name  from Voucher v"

我现在应该做什么?是否需要使用coalesce()或其他方法?

最佳答案

使用左连接:

select v.id, v.amount, drAc.id, drAc.name, crAc.id , crAc.name 
from Voucher v
left join v.drAc drAc
left join v.crAc crAc

关于java - HQL中空引用对象的引用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42631278/

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