我有两门课如下
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\u 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条答案
按热度按时间yr9zkbsy1#
为了解决这个问题,我让我的查询左连接。有了这个,我可以取空值。