동일한 열 이름에 대해 아래 @Where 절에 하나 이상의 LIKE 연산자를 추가하려고합니다. 하지만, OR/AND 연산자로 LIKE를 추가하면 정확한 결과를 얻지 못할 수도 있습니다. 정확한 값을 얻기 위해 어떻게이 시나리오를 단순화 할 수 있습니까?Hibernate - SQL annotation 같은 열 이름에 여러 LIKE 연산자가있는 @Where 절
아래 코드를 찾으십시오. 그것은 것
@Where(clause="name NOT LIKE '%long%' AND name LIKE '%description' AND name
LIKE '%source%'")
@OneToMany(mappedBy = "product", cascade = CascadeType.ALL)
@Where(clause="name NOT LIKE '%long%' AND name LIKE '%description'")
private List<ProductAttr> productAttr;
public List<ProductAttr> getProductAttr() {
return productAttr;
}
public void setProductAttr(List<ProductAttr> productAttr) {
this.productAttr = productAttr;
}
내가 사용하는 경우와 운영자는 일부 레코드에 대한 널 포인터 예외를 제공합니다.
내가 OR 연산자
@Where(clause="name NOT LIKE '%long%' AND name LIKE '%description' OR
name LIKE '%source%'")
는 여기에 몇 가지 값을 놓치고 사용하는 경우.
이 시나리오를 해결하기위한 최선의 방법은 무엇입니까? 쿼리 위
두 가지 경우를 함께 결합하는 다른 방법일까요? 쿼리 결과는 사용할 수없는 항목이 있으면 결과를 놓치지 않아야합니다. – Karthikeyan