我有一个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”。有可能已经添加了标准,我现在不用,例如通过“名称”,并添加新的子标准。