【发布时间】:2021-05-11 22:40:06
【问题描述】:
已在 JPA 中为 %LIKE% SQL equal 使用了存储库中的包含方法,如下所示,
Page<Obj> findByNameContaining(String name, Pageable pageable);
如下所示,
select * from Obj where name like '%John%';
但是我如何传递List<String> 名称,这些名称将使用 JPA 进行如下查询,
select * from Obj where name like '%John%' or name like '%Jiva%' or name like 'etc' .....;
有什么 Spring JPA 方法可以解决这个问题吗?我也检查了规范类,这是这样做的唯一方法还是我错过了任何简单的方法或推荐任何其他动态查询?
【问题讨论】:
-
@zappee 这个我已经看过了,它的 for IN 子句带有 SET 值。但我的要求是在具有 list
值的同一列中执行 %LIKE% 操作,以及我在问题中放置的 sql 的匹配查询。虽然 LIKE 和 IN 不一样 -
也许this 一个,或者paragraph 9 of this guide 可以提供帮助。请检查它们。
标签: java sql spring hibernate spring-data-jpa