hibernate 多对多为空进行查询

各位好:

@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();        
    }
            但其不能成功查询出来。
            不知各位有什么好办法没有。谢谢。