如何找到名字中包含所有字符序列的所有员工?
How to find all employees that contain all character sequenences in their name?
我正在尝试编写一个 Micronaut Data JPA 查找器来查找所有 employees
与字符串列表匹配的内容。
给定以下员工(名字、姓氏)
- 李四
- 李四
- 小飞侠
- 西尔维奥·旺格勒
- 弗兰卡波坦特
- 弗兰克·波特
假设用户使用 Silvio 这样的查询查询系统,那么结果应该是
- 员工:西尔维奥·旺勒
如果查询是 Frank,结果应该是
- 员工:Franka Potente
- 员工:弗兰克·波特
如果查询是 frank pot 结果也应该(不区分大小写)
- 员工:Franka Potente
- 员工:弗兰克·波特
我设法为下面列出的单个字符串编写了一个查找器
Page<Employee> findAllByLastNameIlikeOrFirstNameIlike(
String lastName, String firstName, Pageable pageable);
对于像 frank pot 这样的查询,我想 tokenize/split 将字符串添加到列表 ["frank", "pot"] 并且是想知道我是否可以实现类似
的东西
Page<Employee> findAllByLastNameIlikeOrFirstNameIlike(
List<String> lastName, List<String> firstName, Pageable pageable);
甚至更好地使用 JPA 的条件 API。您将如何实施这样的搜索查找器?能给我指路吗?
我总是首先想到的是如何简单地做到这一点 SQL。
发现一个 MySQL Like multiple values
所以我建议最好的方法是使用条件 API 并构建您自己的动态查询。
看看第一个示例 https://micronaut-projects.github.io/micronaut-data/latest/guide/#repositories,它为您提供了 micronaut 所需的一切。
如果我有某种动态查询,如 'give me everything from start to end but if start is not specified just give me everything before end ... '
,我也会使用标准 api
我正在尝试编写一个 Micronaut Data JPA 查找器来查找所有 employees
与字符串列表匹配的内容。
给定以下员工(名字、姓氏)
- 李四
- 李四
- 小飞侠
- 西尔维奥·旺格勒
- 弗兰卡波坦特
- 弗兰克·波特
假设用户使用 Silvio 这样的查询查询系统,那么结果应该是
- 员工:西尔维奥·旺勒
如果查询是 Frank,结果应该是
- 员工:Franka Potente
- 员工:弗兰克·波特
如果查询是 frank pot 结果也应该(不区分大小写)
- 员工:Franka Potente
- 员工:弗兰克·波特
我设法为下面列出的单个字符串编写了一个查找器
Page<Employee> findAllByLastNameIlikeOrFirstNameIlike(
String lastName, String firstName, Pageable pageable);
对于像 frank pot 这样的查询,我想 tokenize/split 将字符串添加到列表 ["frank", "pot"] 并且是想知道我是否可以实现类似
的东西Page<Employee> findAllByLastNameIlikeOrFirstNameIlike(
List<String> lastName, List<String> firstName, Pageable pageable);
甚至更好地使用 JPA 的条件 API。您将如何实施这样的搜索查找器?能给我指路吗?
我总是首先想到的是如何简单地做到这一点 SQL。 发现一个 MySQL Like multiple values
所以我建议最好的方法是使用条件 API 并构建您自己的动态查询。 看看第一个示例 https://micronaut-projects.github.io/micronaut-data/latest/guide/#repositories,它为您提供了 micronaut 所需的一切。
如果我有某种动态查询,如 'give me everything from start to end but if start is not specified just give me everything before end ... '
,我也会使用标准 api