我有一個Java類,它有一些字段用@SearchCriteria(criteria = "class1.class2.field")
註解。裏面標註criteria
參數用於與類本場應設置爲休眠的標準,它的意思是說,如果現場標記,例如:使用子準則創建動態休眠標準查詢
@SearchCriteria(criteria = "class1.class2.field")
private String value;
我要動態地創建一種與外表休眠標準像
DetachedCriteria hibernateCriteria = forClass(Class.class);
hibernateCriteria.createCriteria("class1").createCriteria("class2").add(eq("field", value));
問題是我不能設置另一個標準來添加,這意味着我應該檢查註釋criteria
選項。
switch (annotationCriteria.length - 1) {
case 0:
hibernateCriteria.add(isNull(annotationCriteria[0]));
case 1:
hibernateCriteria.createCriteria(annotationCriteria[0]).add( Restrictions.isNull(annotationCriteria[annotationCriteria.length - 1]));
case 2: hibernateCriteria.createCriteria(annotationCriteria[0]).createCriteria(annotationCriteria[1]).add( Restrictions.isNull(annotationCriteria[annotationCriteria.length - 1]));
}
我想刪除這個「swith」。有可能已經添加了標準,我現在不用,例如通過「名稱」,並添加新的子標準。