您的位置:首页 > 其它

hibernate Criteria查询多对多(Set集合)条件筛选

2016-10-08 14:30 357 查看
PO

Java代码


public class UserPO implements java.io.Serializable {

/** 用户唯一标识ID */

private String id;

/** 状态(在用1停用0) */

private String userStatus;

private Set roles = new HashSet();

........

}

Java代码


public class RolePOimplements java.io.Serializable {

/** 角色唯一标识ID */

private String id;

/** 角色级别 */

private Integer roleLevel;

private Set users = new HashSet(0);

........

}

查询用户userStatus等于1且他的角色Level等于3的用户

Java代码


DetachedCriteria criteria = DetachedCriteria.forClass(UserPO.class); // org.hibernate.criterion.DetachedCriteria

criteria.add(Restrictions.eq("userStatus", "1"))

.createAlias("roles", "r")

.add(Restrictions.eq("r.roleLevel", new Integer(3)));

criteria.add(Restrictions.eq("userStatus", "1"))

.createAlias("roles", "r")

.add(Restrictions.eq("r.roleLevel", new Integer(3)));

需要注意的是:

获取User时是获得了roles的全部记录集,而不是经过过滤的记录集,相当于User的id获得的完整实例一样
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: