gpt4 book ai didi

java - 为 @Query 提供运行时生成的 jpql 查询

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:57 25 4
gpt4 key购买 nike

我正在使用一种方法,该方法根据用户在从数据库检索数据时想要应用的一组过滤器生成查询字符串。因此,对于每个新过滤器,该方法都会附加类似 AND variable_x = '4' 的内容。

我想使用Spring Data的JpaRepository接口(interface),并且我想创建一个用@Query注释的方法来执行这个生成的查询。但是,@Query 需要一个常量作为值。那么有没有办法让 @Query 执行这个生成的查询呢?例如,这样的事情可以工作吗?我可以将整个 JPQL 查询作为参数提供给 @Query 吗?

@Query("?1")
public abstract void executeRuntimeGeneratedQuery(String query);

或者有更优雅的解决方案可以解决我的问题吗?

最佳答案

Can I give the entire JPQL query as a parameter to @Query?

不,这是不可能的。 @Query 注释是静态的,您只能使用 JPA 支持的参数(包括 SpEL 表达式),这基本上意味着表达式,而不是列或表名称,当然也不是完整的语句。

Or are there more elegant solutions that solve my problem?

是的,还有其他选择。根据您的描述Specifications seem to fit the bill best .

当然,您可以将其与custom methods结合起来。如果您想做的事情超出了规范所能提供的范围,这也将节省您的时间。

关于java - 为 @Query 提供运行时生成的 jpql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44914742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com