如何在 JPA 存储库中准确搜索数字而不是使用 LIKE?
Posted
技术标签:
【中文标题】如何在 JPA 存储库中准确搜索数字而不是使用 LIKE?【英文标题】:How to search for a number exactly in JPA repo instead of using LIKE? 【发布时间】:2021-10-16 16:27:18 【问题描述】:我有一个包含搜索方法查询的 JPA 存储库,并且该查询可以正常工作,但不是使用 Like 我需要它来搜索确切的数字或类似的数字,例如当前如果我输入的 amountContributed 为 1120 1 并搜索它会出现项目,如果我输入 11 它也会出现,然后输入 112。
@Query("SELECT p FROM Project p WHERE p.url LIKE %?1%"
+ " OR p.description LIKE %?1% OR p.amountContributed LIKE %?1%")
public List<Project> search(String keyword);
感谢您的帮助
【问题讨论】:
1 也能找到 112,能否请你做个表格,里面有数据,哪些数据应该在最终结果中,哪些不是,所以基本上产生一个minimal reproducible example 【参考方案1】:如果您想搜索确切的数字,请使用 =
@Query("SELECT p FROM Project p WHERE p.url LIKE %?1%"
+ " OR p.description LIKE %?1% OR p.amountContributed = ?1")
public List<Project> search(String keyword);
【讨论】:
以上是关于如何在 JPA 存储库中准确搜索数字而不是使用 LIKE?的主要内容,如果未能解决你的问题,请参考以下文章
java - 如何在spring boot java中编写一个函数来处理JPA存储库中的自定义查询?
如何在 jpa spring 存储库中使用 OrderBy?
如何忽略 Spring JPA findBy 存储库中的重音符号?