2017-03-03 7 views
1

나는 "OR"연산자 대신 "AND"로 검색 할 수있는 두 가지 속성이있는 JPA 엔티티가 있습니다. 사람들은 ledgerCode과 나눗셈 :봄의 요청에 의한 예 "또는"

SELECT d 
    FROM COMPANY d 
WHERE d.countryCode = country 
    OR d.ledgerCode = ledger 
    OR d.division = division 
    AND lower(d.name) LIKE '%name%' 

가 가능 :

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 결과가 있어야한다 (NOT NULL 모든 매개 변수를 가정하여)? 예, 그렇다면 어떻게됩니까? ExampleMatcher 클래스에서 Google의 코드 예제 나 암시 적 메서드 이름을 찾을 수 없습니다.

+0

가능한 복제 [어떻게 AND 스프링 데이터 JPA 여러 OR 파라미터 법 (http://stackoverflow.com/questions/26857501/how-to-do-and-and-multiple-or-parameters- spring-method-in-spring-data-jpa) –

답변

0

당신은 OR와 결합 예에 의해 검색어로 검색 할 수 없습니다. 메도 ExampleMatcher.matchingAny() A 또는 동작으로

은 AND 연산의 instad 생성된다. 그러나이 작업은 모든 속성에 사용됩니다.