日期:2014-05-18  浏览次数:20695 次

使用DetachedCriteria进行多对多查询问题
做项目维护,之前项目是用DetachedCriteria做查询条件检索,想遵循之前的风格。
现在有 用户(user)对应实体类User 角色表(role)对应实体类Role 多对多关系(user_role)没有实体类
用DetachedCriteria做检索,检索条件
User name="abc"
User deptId="124"
...
这些都好说,关键还有条件是
Role roleId="1"

我要把查询条件封装到DetachedCriteria中,查询数量,或者查询list,roleId怎封装进去

------解决方案--------------------

DetachedCriteria userCriteria = DetachedCriteria.forClass(User.class, "u");
DetachedCriteria roleCriteria = userCriteria.createAlias("user_role", "r");
userCriteria.add(Restrictions.eq("u.name", "abc"));
userCriteria.add(Restrictions.eq("u.deptid", "124"));
roleCriteria.add(Restrictions.eq("r.roleid", new Long(1)));

------解决方案--------------------
尝试在user里定义role,然后去查询