【发布时间】:2021-09-21 16:34:29
【问题描述】:
我正在尝试在另一个 JPQL 本机查询中将查询作为字符串参数传递。
@Query(value = "SELECT (:query)", nativeQuery = true)
BigDecimal getTotal(@Param("query") String query);
所以结果查询类似于下面的查询,它返回一个值
SELECT (50 * (SELECT COUNT(*) FROM SOMETABLE))
但我得到的只是:query 参数的字符串,而不是执行的完整查询的结果。
【问题讨论】:
-
你正在尝试的东西是不可能的。参数将使用准备好的语句绑定,并且您不能传递查询。为什么不用你要执行的真实语句编写查询呢?
-
@SimonMartinelli 我知道这是一个奇怪的实现,但是我作为参数传递的查询是生成并存储在一个表中的,它代表一个可以改变的更大公式的一部分,这就是我为什么尝试以这种方式构建查询,以便我可以创建一个包含所有生成的子查询的查询。