Hibernate SQLQuery.addEntity的使用示例
1、如果我们想要的结果是某个对象的实体,这是就可以通过addEntity()方法来实现。addEntity()方法可以讲结果转换为实体。但是在转换的过程中要注意几个问题:
1、查询返回的是某个数据表的全部数据列
2、该数据表有对应的持久化类映射
这时才可以通过addEntity()方法将查询结果转换成实体。
2、代码
@Override
public List<Resource> getResources(String userId) throws Exception {
StringBuffer sql = new StringBuffer();
sql.append(" select * from T_COMM_RESOURCE d where d.ID in( ");
sql.append(" select DISTINCT c.RES_ID_ from T_COMM_USER_ROLE a , T_COMM_ROLE b, T_COMM_ROLE_RESOURCE c ");
sql.append(" where a.ROLE_ID_ = b.ID_ and b.ID_ = c.ROLE_ID_ and a.USER_ID_=" + userId);
sql.append(" and b.STATUS_=1 UNION all select 0) and d.STATUS_=1 and d.CLASS_ = 'Menu' ");
@SuppressWarnings("unchecked")
List<Resource> rows = getCurrentSession().createSQLQuery(sql.toString()).addEntity(Resource.class).list();
return rows;
}
3、另外更多hibernate SQLQuery操作查看Hibernate SQL查询 addScalar()或addEntity()