0
i have a question about the hibernate many to many query.
@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<Role> parentSet = new HashSet<Role>();
@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<Role> roleSet = new HashSet<Role>();
}
nullである私はparentSetによる役割の一覧を照会するnullである コードのように:休止状態:多対多での基準とHashSetのは、クエリ条件として
public <T> List<T> gets(Class<T> clazz){
Session session = getSession();
Criteria criteria = session.createCriteria(clazz);
criteria.createAlias("parentSet","parentSet");
criteria.add(Restrictions.isNull("parentSet"));
return criteria.list();
}
しかし結果は私が望んでいない。 どのようにすればいいですか? 私に教えてもらえますか? ありがとう!
public <T> List<T> gets(Class<T> clazz){
Session session = getSession();
Criteria criteria = session.createCriteria(clazz);
criteria.createAlias("roleSet","roleSet");
criteria.add(Restrictions.neProperty("roleSet.id", "id"));
return criteria.list();
}
と私の好きな結果: