在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
Object[] result
有没有办法让JPA返回包含实体子集的Map,例如是否有可以返回的JPQL查询, List<Map<String,Object>> result例如result.get(0).get("e.name")return e.name和result.get(0).get('e.salary')returne.salary
List<Map<String,Object>> result
result.get(0).get("e.name")
e.name
result.get(0).get('e.salary')
e.salary
如果JPQL无法做到,HQL可以做到吗?
JPA 为化合物选择提供了数量有限的返回类型:数组,元组和构造,而Hibernate 为select子句提供了更多的返回类型,其中包括Map。
SELECT NEW map(e.name, e.salary, e.department.name) FROM Employee e
此HQL查询Map从别名返回a 到选定值。
Map