我有一个 JPA 实体,它有两个属性可以通过“OR”运算符而不是“AND”进行搜索。这些是 ledgerCode 和部门:
Company comp = new Company();
ExampleMatcher matcher =
ExampleMatcher.matching().withStringMatcher(StringMatcher.CONTAINING)
.withIgnoreCase("name");
comp.setCountryCode(countryCode);
comp.setLedgerCode(ledgerCode);
comp.setDivision(division);
comp.setName(name);
List<Company> result = compSearchRepository.findAll(Example.of(comp, matcher));
那么 SQL 结果应该是(假设所有参数不为空):
SELECT d
FROM COMPANY d
WHERE d.countryCode = country
OR d.ledgerCode = ledger
OR d.division = division
AND lower(d.name) LIKE '%name%'
可能吗?如果是,怎么会?我在 Google 上找不到任何代码示例,也找不到在 ExampleMatcher 类中的建议方法名称。