问题描述
我有两个像下面的课
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'
...
}
我需要让所有不是master或没有角色的用户使用。为此,我尝试了类似的方法,但是没有用。
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);
如何进行像角色为null或role.isMaster等于“ N”的查询?
解决方法
为解决此问题,我将查询保留为联接。这样我就可以取空值。
request.method != "POST"