使用ssh框架开发,发现经常需要用到一些复杂的查询需求,就需要在hibernate下执行原生sql。
例子如下所示:
public List getList(final String sql) {
return hibernateTemplate.execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createSQLQuery(sql);
//设定结果结果集中的每个对象为Map类型
query.setResultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP);
return query.list();
}
});
}
ps:sql必须写成final的,要不然会报错。