java criteriaBuilder notEqual函数不会为多个同一类返回空值
我有两门课,如下所示
public class User {
@Column(name = "EMP_NAME")
private String name;
@Column(name = "EMP_PASSWORD")
private String password;
@ManyToOne
@JoinColumn(name = "ROLE_ID")
private Role role;
....
}
public class Role {
@column("ROLE_NAME")
private String name;
@column("IS_MASTER")
String isMaster; // 'Y' or 'N'
...
}
我需要得到所有的用户不是主人或没有角色。为了做到这一点,我尝试了类似的东西,但没有工作
Predicate nonMaster = cb.notEqual(root.get("role").get("isMaster"), "Y");
cb.and(nonMaster)
但这不会返回没有角色值(role_ID==NULL)的用户。我也试过,但也不管用
Predicate nonMaster = cb.notEqual(root.get("role").get("isMaster"), "Y");
Predicate nullRole = cb.isNull(root.get("role"));
cb.or(nullRole,nonMaster);
如何进行类似role为null或role的查询。isMaster等于“N”
# 1 楼答案
为了解决这个问题,我让我的查询左连接。有了这个,我就可以得到空值