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

DataGrdid 利用结果集反向转换成数据List

如何将一个map 转换成json数据

如何正确地转换成 java.util.Date 通过 JPA 的 Oracle 日期字段

map与json的转换

记一次踩坑 Gson转换map对象时 Integer类型自动转换成Double类型