Hibernate 原生native sql支持 返回列名

今天在写一个action的时候发现,hibernate的原生的sql的查询的支持的确不太满足我的需求,特别的现在的hibernate5.2.6版本,其中去除掉了很多原生查询的支持,特别是setResultTransformer()方式的过时,使得我需要获取到sql返回的值带列名的需求化为泡影。

可喜的是hibernate5.2.6的版本中该setResultTransformer()方法虽然标记为过时,但是依然可用。使得我可以直接通过setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP),返回带有列名的map对象。

具体方法如下:

public List getSql(String sql) throws Exception {
   NativeQuery query =  this.sessionFactory.getCurrentSession().createNativeQuery(sql);
   query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
    return query.getResultList();
}


query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);

你可能感兴趣的:(java,tomcat)