首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-10-26 
hibernate Criteria查询多对多(Set集合)条件筛选查询用户userStatus等于1且他的角色Level等于3的用户?PO?p

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

?

?

?

.

热点排行