各位好:
@Entity
@Table(name = "ROLES")
public class Role implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@ManyToMany(mappedBy = "roleSet", fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
@Fetch(FetchMode.SELECT)
private Set parentSet = new HashSet();
@ManyToMany(targetEntity = Role.class, cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
@Fetch(FetchMode.SELECT)
@JoinTable(name = "R_PARENT_ROLE", joinColumns = @JoinColumn(name = "parentId"), inverseJoinColumns = @JoinColumn(name = "ROLEID"))
private Set roleSet = new HashSet();
}
我想查询其 parentSet 和roleSet为空的行。
代码如下:
public <T> List<T> gets(Class<T> clazz){
Session session = getSession();
Criteria criteria = session.createCriteria(clazz);
criteria.createAlias("parentSet","parentSet");
criteria.createAlias("roleSet","roleSet");
criteria.add(Restrictions.and(Restrictions.isNull("parentSet"),Restrictions.isNull("roleSet")));
return criteria.list();
}
但其不能成功查询出来。
不知各位有什么好办法没有。谢谢。