如何 return List<Map<String, Object>> 使用 Hibernate
How to return List<Map<String, Object>> using Hibernate
我想 return 来自我的 createNativeQuery().getResultList()
的地图列表,其中每个地图都是一对键 - 值,表示列名称 - 值。我已经尝试在这样的方法中直接使用:
public List<Map<String, Object>> execQuery(String nativeQuery) {
return entityManager().query(nativeQuery).getResultList();
}
但它总是 return 列表。有人知道我想要的是否可行?
我使用的 JPA 实现是 Hibernate。我目前正在使用 Java 8(不知道此信息是否与我的情况相关)。
欢迎任何帮助。
提前致谢。
请尝试
Query q1 = entityManager().query(nativeQuery);
org.hibernate.Query hibernateQuery =((org.hibernate.jpa.HibernateQuery)q1) .getHibernateQuery();
hibernateQuery.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
您可以使用 ResultTransformer 将结果转换为地图形式。
Following the oficial documentation
像这样:
List<Map<String,Object>> mapaEntity = session
.createQuery( "select e from Entity" )
.setResultTransformer(new AliasToEntityMapResultTransformer())
.list();
我想 return 来自我的 createNativeQuery().getResultList()
的地图列表,其中每个地图都是一对键 - 值,表示列名称 - 值。我已经尝试在这样的方法中直接使用:
public List<Map<String, Object>> execQuery(String nativeQuery) {
return entityManager().query(nativeQuery).getResultList();
}
但它总是 return 列表。有人知道我想要的是否可行?
我使用的 JPA 实现是 Hibernate。我目前正在使用 Java 8(不知道此信息是否与我的情况相关)。
欢迎任何帮助。
提前致谢。
请尝试
Query q1 = entityManager().query(nativeQuery);
org.hibernate.Query hibernateQuery =((org.hibernate.jpa.HibernateQuery)q1) .getHibernateQuery();
hibernateQuery.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
您可以使用 ResultTransformer 将结果转换为地图形式。 Following the oficial documentation
像这样:
List<Map<String,Object>> mapaEntity = session
.createQuery( "select e from Entity" )
.setResultTransformer(new AliasToEntityMapResultTransformer())
.list();