多字段匹配
有时候我们希望一个查询条件同时作用于多个字段,当其中某一个字段满足条件时,即认为匹配成功。@QueryCondition
注解的field
属性支持以数组形式传入多个字段,实现多字段匹配的功能。
class Foo {
Long id;
String name;
String nickname;
int age;
}
class FooQo {
@QueryCondition(field={"name","content"}, type=Condition.CONTAINS)
String name;
@QueryCondition
int age;
}
FooQo fooQo = new FooQo("foo", 18);
Specification<Foo> specification = SpecificationFactory.getSpecification(fooQo);
List<Foo> foos = fooRepository.findAll(specification);
生成的SQL:
SELECT * FROM FOO
WHERE (LOWER(FOO.NAME) LIKE '%foo%'
OR LOWER(FOO.NICKNAME) LIKE '%foo%')
AND FOO.AGE = 18;
Last updated