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)));
DetachedCriteria roleCriteria = userCriteria.createAlias("user_role", "r");的user_role是表名不是实体类,确定可以这么用么,我这边没弄通
detachedCriteria.add(Restrictions.sqlRestriction(roleId + "in (select ROLE_ID from user_role where USER_ID=this_.USER_ID)"));
this_ 是User没有起别名的情况下hibernage自动添加的别名