如何在 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 存储库中的重音符号?

当我在存储库中编写一些 JPA 查询时,Spring 启动停止

spring jpa存储库中的子查询

如何在php中存储大量数据?