如何返回List <map <string,object =“”>&gt;使用Hibernate

时间:2016-07-22 18:52:03

标签: java hibernate hibernate-native-query

我想从我的createNativeQuery().getResultList()返回一个地图列表,其中每个地图都是一对键 - 代表列名的值 - 值。我已经尝试在这样的方法中使用direct:

public List<Map<String, Object>> execQuery(String nativeQuery) {
    return entityManager().query(nativeQuery).getResultList();
}

但它总是返回List。有人知道我想要的是否可能? 我使用的JPA实现是Hibernate。我目前正在使用Java 8(不知道这些信息是否与我的案例相关) 欢迎任何帮助。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

请尝试

Query q1 = entityManager().query(nativeQuery); 
org.hibernate.Query hibernateQuery =((org.hibernate.jpa.HibernateQuery)q1) .getHibernateQuery(); 
hibernateQuery.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);‌​

答案 1 :(得分:1)

您可以使用ResultTransformer以地图形式转换结果。 Following the oficial documentation

像这样:

List<Map<String,Object>> mapaEntity = session
    .createQuery( "select e  from Entity" )
    .setResultTransformer(new AliasToEntityMapResultTransformer())
    .list();