SSH 문제 및 해결 의 3 SpringSide 3 결함
2814 단어 J2EE 개발
[quote] ss3 의 Property Filter 는 where 속성 명 1 like '% 값 1%' or 속성 명 1 을 제공 하지 않 은 것 같 습 니 다.
like '% 값 2%' or 속성 명 1 like '% 값 3%' 이런 경우
이런 상황 이 발생 하면 어떻게 실현 해 야 합 니까? 자신 이 쓰 면 page 패 키 지 를 버 려 야 합 니 다 [/ quote]
제 프로젝트 도 이 문제 에 부 딪 혔 습 니 다. SpringSide 은 좋 은 해결 방안 을 제공 하지 않 았 습 니 다. 그 이 유 는 Property Filter 의 property Value 입 니 다. match Type 은 데이터 형식 으로 정 의 를 내리 지 않 았 고 property Names 는 배열 입 니 다. 이 는 '또는' (OR) 작업 시간 값 과 일치 해 야 합 니 다.
나의 방법 은:
// 1. ' ' ' ' ' '
Disjunction disjunction = Restrictions.disjunction();
//
Criterion neCriterion = buildPropertyFilterCriterion("workCenterId",
workCenterId, java.lang.Integer.class,
PropertyFilter.MatchType.NE);
//
Criterion nullCriterion = buildPropertyFilterCriterion("workCenterId",
null, java.lang.Integer.class, PropertyFilter.MatchType.NULL);
disjunction.add(neCriterion);
disjunction.add(nullCriterion);
finalList.add(disjunction);
// 2.
List criterionList = this.buildCriterions(filters);
if (criterionList!=null && !criterionList.isEmpty()) {
finalList.addAll(criterionList);
}
Criterion[] criterions = finalList
.toArray(new Criterion[finalList.size()]);
return findPage(page, criterions);
예 를 들 어 프로젝트 진도 관계 로 ss 를 확장 하지 않 았 기 때문에 이런 관계 에 대해 자신 이 비교적 딱딱 한 인 코딩 을 했다.
/**
*
*
* @param filters
* @return
*/
protected List buildCriterions(final List filters) {
List criterionList = new ArrayList();
for (PropertyFilter filter : filters) {
if (!filter.isMultiProperty()) { // There is only one property
// need to compare the
// situation.
Criterion criterion = buildPropertyFilterCriterion(filter
.getPropertyName(), filter.getPropertyValue(), filter
.getPropertyType(), filter.getMatchType());
criterionList.add(criterion);
} else {// Contain multiple attributes need to compare the situation
// to carry out or deal with.
Disjunction disjunction = Restrictions.disjunction();
for (String param : filter.getPropertyNames()) {
Criterion criterion = buildPropertyFilterCriterion(param,
filter.getPropertyValue(),
filter.getPropertyType(), filter.getMatchType());
disjunction.add(criterion);
}
criterionList.add(disjunction);
}
}
return criterionList;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SSH 문제 및 해결 의 3 SpringSide 3 결함Google Code Archive - Long-term storage for Google Code Project Hosting. Search The Google Code Archive requires JavaScr...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.