一尘不染

从JPQL查询返回JPA实体的子集作为地图数组?

hibernate

在JPQL中,可以使用构造函数表达式(例如

SELECT NEW example.EmployeeDetails(e.name, e.salary, e.department.name) FROM Employee e

它返回EmployeeDetails类型的对象列表

或使用投影选择,例如

SELECT e.name, e.salary FROM Employee e

返回一个Object[] result结果,其中result [0]是e.name,而result [1]是e.salary

有没有办法让JPA返回包含实体子集的Map,例如是否有可以返回的JPQL查询, List<Map<String,Object>> result例如result.get(0).get("e.name")return
e.nameresult.get(0).get('e.salary')returne.salary

如果JPQL无法做到,HQL可以做到吗?


阅读 238

收藏
2020-06-20

共1个答案

一尘不染

JPA
为化合物选择提供了数量有限的返回类型:数组,元组和构造,而Hibernate
为select子句提供了更多的返回类型,其中包括Map。

SELECT NEW map(e.name, e.salary, e.department.name) FROM Employee e

此HQL查询Map从别名返回a 到选定值。

2020-06-20