gpt4 book ai didi

spring-boot - Spring JPA 存储库自定义查询

转载 作者:行者123 更新时间:2023-12-01 22:17:07 28 4
gpt4 key购买 nike

此自定义查询有效(这只是说明问题的基本查询):

public interface BookQueryRepositoryExample extends Repository<Book, Long> {
@Query(value = "select * from Book b where b.name=?1", nativeQuery = true)
List<Book> findByName(String name);
}

但我需要另一个自定义查询,其中 where 子句将在调用方法之前动态构造。

public interface BookQueryRepositoryExample extends Repository<Book, Long> {
@Query(value = "select * from Book b where ?1", nativeQuery = true)
List<Book> findByWhatever(String qry);
}

但我无法让它工作。有什么解决方法吗?

更新时间:2017 年 6 月 16 日

只是想提一下,我正在搜索的字段是“非规范化”形式。这些值可能如下所示(如下)。所以我的查询有一系列类似的语句

示例 1:

name:John Smith;address1:123 Xyz St;city:New York;zip:12345;country:USA;id:ABC1234;email:js@abc.com;

示例 2:重新排列

address1:123 Xyz St;zip:12345;email:js@abc.com;name:John Smith;country:USA;id:ABC1234;city:New York;

示例 3:缺少字符串/文本

zip:12345;email:js@abc.com;name:John Smith;id:ABC1234;city:New York;

最佳答案

这行不通,至少对于这种方法行不通。

查询中的占位符不只是被一些任意的 String 替换,而是变量,只能代表您将以文字形式提供的内容。

但作为@M。 Deinum 指出还有其他选择:您可以 write a custom method并使用

  • JPA 标准 API
  • JPQL
  • 规范
  • 查询DSL

有关示例,请参阅本文:https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/

关于spring-boot - Spring JPA 存储库自定义查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44528819/

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