项目中一个DAO查询想了很久没有写出来,然后提交给经理,好几天了,经理都没有给出答复,项目中的查询主要用QBC写的,但是这个查询涉及三个表,最后考虑用SQL写。
三个表的结构如下
方法的要求是用角色ID查权限列表:
public List<Privilege> getPrivilegesByRoleId(Long roleId) {
List<Privilege> result=null;
if(roleId==null){
return null;
}
String sql="select * from Privilege where id in(select privilege_id from Role_Privilege where role_id="+roleId+")";
SQLQuery sqlQuery=super.getSession().createSQLQuery(sql);
sqlQuery.addEntity(Privilege.class);
result=(List<Privilege>)sqlQuery.list();
return result;
}
经过测试,完全没有问题。。。。。