当前位置: 首页 > 面试题库 >

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

楚举
2023-03-14
问题内容

在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可以做到吗?


问题答案:

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

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

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



 类似资料:
  • 问题内容: 我正在写一个跨三个表的JPQL查询。在我的结果列表中,我想获得每个匹配行的所有三个实体(希望如此)。 有任何想法吗? Hibernate 3.x是我的JPA提供程序。 问题答案: IIRC,您可以执行,结果将是,其中数组内容将包含o1,o2,o3值。

  • 如何返回与JPA中的父级有关系的实体列表? 我有一个用户实体,在名为的属性上有@OneToMany映射。子实体为Pet类型。这只是一种单向关系。 如何在JPA中编写返回给定用户的所有宠物的连接?

  • 我正在使用jpa 2.1 EntityGraphs来修改不同的jpa查询,在某些情况下,EntityGraph不能按预期工作。我正在努力解决的简单用例是: 作者作为父类,与Book子类具有单向一对多关系,我想检索给定书名的作者结果,类似于findAllAuthorsByBookName。 我的作者类是这样的 书没有引用作者,所以它看起来像这样 Generic Entity类仅具有id和name属性

  • 我想知道是否有可能通过spring jpa存储库执行jpql查询,并能够使用分页作为排序功能,就像使用示例和规范一样。我想做一些类似的事情: QueryByQuestpleExector接口,即声明: JpaSpecificationExector接口声明:

  • 我在当前项目中使用QueryDSL,在一个实例中,由于jpql的限制,我需要使用本机查询而不是jpa查询。 值得庆幸的是,通过从切换到可以很容易地从一个实体切换到另一个实体并保留api抽象层,但是在我这样做之后,实体不再映射为结果类型。 示例: 使用: 将生成适当的实体作为结果类型: 但是 有没有办法强制返回实体而不手动映射它们? 使用query_dsl_version=4.2.1的Im TLDR

  • 我试图将我的Mysql查询转换为JPQL,但我不知道哪个工具可以在eclipse上使用而无需编译。 我的日志没有告诉我哪里是错误,所以我找不到哪里是错误的语法。 谢谢你的帮助!