有时候我们希望一个查询条件同时作用于多个字段,当其中某一个字段满足条件时,即认为匹配成功。@QueryCondition注解的field属性支持以数组形式传入多个字段,实现多字段匹配的功能。
@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 6 years ago