JPA 기준 쿼리 문제가 있습니다. 어떻게 여러 추가 할 수있는 다른 경우 내 기준 쿼리에서 절 ...JPA 조건 쿼리의 조건부 where 절
내 요구 사항은 다음과 같습니다
위의 코드에서CriteriaBuilder builder = getEm().getCriteriaBuilder();
CriteriaQuery<Object> query = builder.createQuery(Object.class);
// From
Root<EntityClass> entity= query.from(EntityClass.class);
// Select
query.multiselect(entity.get("id").get("col1"),entity.get("id").get("col2"));
// Where
Predicate p1 = builder.and(builder.equal(entity.get("col3"), value3));
Predicate p2 = builder.and(builder.equal(entity.get("col4"), value4));
Predicate p3 = builder.and(builder.equal(entity.get("col5"), value5));
if(someCondition1){
query.where(p1);
}else if(someCondition2){
query.where(p1);
}
query.where(p3);
문 query.where (P3); 이전에 설정된 where 절 조건 p1과 p2를 대체합니다. 내가 찾은 대안은
if(someCondition1){
query.where(p1, p3);
}else if(someCondition2){
query.where(p2, p3);
}else{
query.where(p3);
}
다음과 같은 결합한 것입니다 그러나 많은 경우 - 다른 사람이있을 때이 반복되는 코드를 작성하는 아주 나쁜되기 때문에 즉, 좋은 접근하지 무엇입니까. 아무도 이것에 대한 해결책을 가질 수 있습니까? 이 같은
좋은 접근 감사합니다! – Furkan