JPA使用原生sql结果集转换成Map
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPA使用原生sql结果集转换成Map相关的知识,希望对你有一定的参考价值。
参考技术A JPA中使用原生sql查询出的结果中每一条记录是object数组,如下所示String sql = "select id,group_name from form_temp_type";
Query query = entityManager.createNativeQuery(sql);
List<Object[]> list = query.getResultList();//最终的结果集是object数组
我们在使用的时候需要从数组中逐个取出,比较麻烦。很多情况下我们需要的是对象或者Map.
String sql = "select id,group_name from form_temp_type";
Query query = entityManager.createNativeQuery(sql);
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map> list = query.getResultList();//这里的结果是Map,我们可以通过字段名称获取到相应的值
public static List findRelatives(Stringsql,Map<String,Object>params,EntityManagerentityManager,Class<?>clazz)
Sessionsession=entityManager.unwrap(Session.class);
NativeQueryquery=session.createNativeQuery(sql);
query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(clazz));
for(Stringkey:params.keySet())
Objectvalue=params.get(key);
query.setParameter(key,value);
entityManager.close();
returnquery.getResultList();
以上是关于JPA使用原生sql结果集转换成Map的主要内容,如果未能解决你的问题,请参考以下文章
Spring:JPA 将原生 SQL 转换为非实体 pojo