当前位置: 首页 > 知识库问答 >
问题:

查询中的Spring启动 JPA 函数

钮轩昂
2023-03-14

我想在我的查询中调用一个函数。例如:

SELECT myT.col1, myT.col2, myT.col3, fun_get_calculatedCol(myT.col4) as calcCol FROM myTable myT

在我的myTableRepository中,我可以执行以下操作:

@Query("SELECT myT.col1, myT.col2, myT.col3 from MyTable myT")
List<MyTable> getCustomColumns();

但向语句添加函数调用不起作用:

@Query("SELECT myT.col1, myT.col2, myT.col3, fun_get_calculatedCol(myT.col4) as calcCol from MyTable myT")
List<MyTable> getCustomColumns();

有没有办法让它在JPQL中工作?

我的错误:

Caused by: java.lang.IllegalStateException: No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode 
\-[METHOD_CALL] MethodNode: '('
+-[METHOD_NAME] IdentNode: 'fun_get_calculatedCol' {originalText=fun_get_calculatedCol}

共有1个答案

廉博赡
2023-03-14

您可以将其定义为本机查询:

@Query(value = "SELECT myT.col1, myT.col2, myT.col3, fun_get_calculatedCol(myT.col4) as calcCol from MyTable myT", nativeQuery = true)
List<MyTable> getCustomColumns();
 类似资料:
  • 问题内容: 我正在寻找一种使用Spring Data JPA动态构建查询的解决方案。我有一个GameController,它有一个RESTful服务终结点/ games,它带有4个可选参数:体裁,平台,年份,标题。可能不传递任何API,而是传递所有4种,以及之间的每种组合。如果未传递任何参数,则默认为null。我需要在存储库中使用一种方法来构建适当的查询,并且理想情况下还允许Spring Data

  • 我想使用返回对象的注释在spring boot中编写一个查询。 所以,我的问题是:分页的最佳JPA查询类型(JPQL,NativeQuery,...)是什么? 提前谢谢你!

  • 我想做一些有趣的事情,我希望能够动态地构建SQL查询过滤器使用Spring Boot 1.5.9和Spring Data Rest,而不需要编写控制器。我觉得我可能走在正确的道路上,但我有点卡住了。 这个想法是通过使用HandlerInterceptorAdapter截取HTTP请求GET方法,并将请求查询参数存储到PagingAndSortingRepository可以使用的对象中。计划是重写S

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