java - Hibernate : How to get Named SQL Query resultset as List<Map<columnName, Value> 而不是 List<Object[]>

标签 java hibernate hibernate-mapping resultset named-query

我在 hibernate 映射文件中编写了一个命名的 sql 查询,它只返回不同表中的几列。

  <resultset name="employeeDetails">
     <return-scalar type="timestamp" column="joinDate"/>
     <return-scalar type="string" column="name"/>
     <return-scalar type="string" column="department"/>
     <return-scalar type="big_decimal" column="salary"/>
  </resultset>

  <sql-query name="getEmployeeDetails" resultset-ref="employeeDetails">
   <![CDATA[
    select ei.joinDate as joinDate, e.name as name, e.depatrment as department, e.salary as salary from Employee as e, Employee_Info as ei where ei.emp_id = e.id
    ]]>
  </sql-query>

当我调用此查询时。

   final Query query = session.getNamedQuery("getEmployeeDetails");
   final List<Object[]> list = (List<Object[]>) query.list();

它返回对象数组列表。有没有办法将此结果集获取为 Map 列表,其中 columnName 作为键,其值作为 Value。

最佳答案

Query query=session.createSQLQuery(query); 
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE); 
List<Map<String,Object>> aliasToValueMapList=query.list(); 

关于java - Hibernate : How to get Named SQL Query resultset as List<Map<columnName, Value> 而不是 List<Object[]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32777289/

相关文章:

java - 无法找出 JDBC ClassNotFoundException(JTDS 驱动程序)

java - Tomcat 找不到 H2 内存数据库

java - Maven 忽略 "maven-compiler-plugin"要求

java - 使用多线程设置线程优先级没有效果

java - 什么会导致 Hibernate 4 出现 "Too many connection"

hibernate - org.hibernate.MappingException : Unknown entity: java. lang.Long

java - @OrderBy 导致java.lang.ClassCastException : antlr. CommonToken cannot be cast to antlr.Token

java - 如何建立基于非关键字段的关系?

java - 在 Hibernate 映射中 : how to set default value?

java - jar依赖项中的权限被拒绝heroku错误