`
java110eye
  • 浏览: 64242 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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

阅读更多

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

 

PO

 

public class UserPO implements java.io.Serializable {
	/** 用户唯一标识ID */
	private String id;
	/** 状态(在用1停用0) */
	private String userStatus;

	private Set roles = new HashSet();
	........
}

 

public class RolePOimplements java.io.Serializable {
	/** 角色唯一标识ID */
	private String id;
	/** 角色级别 */
	private Integer roleLevel;

	private Set users = new HashSet(0);
	........
}

 

 

 

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

 

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获得的完整实例一样

 

 

 

.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics