[英]Hibernate “OR” restriction
I have to add Restriction.or to my criteria 我必须在我的标准中添加Restriction.or
I am doing 我在做
Criterion displayName = Restrictions.ilike("displayName", search, MatchMode.ANYWHERE);
Criterion lastUpdatedName = Restrictions.ilike("lu.displayName", search, MatchMode.ANYWHERE);
Criterion tagTokenVarText = Restrictions.ilike("tvtext.value", search, MatchMode.ANYWHERE);
Criterion tagTokenMultiText = Restrictions.ilike("tmtText.value", search, MatchMode.ANYWHERE);
Criterion tagTokenSiteVar = Restrictions.ilike("ttSiteVar.displayName", search, MatchMode.ANYWHERE);
Criterion tagMultiTokenSiteVar = Restrictions.ilike("tmtSiteVar.displayName", search, MatchMode.ANYWHERE);
Criterion or1 = Restrictions.or(displayName, lastUpdatedName);
Criterion or2 = Restrictions.or(tagTokenVarText, tagTokenMultiText);
Criterion or3 = Restrictions.or(tagTokenSiteVar, tagMultiTokenSiteVar);
Criterion or4 = Restrictions.or(or1, or2);
criteria.add(Restrictions.or(or4, or3));
but i do not like this way of creating Criterion or1, or2... 但我不喜欢这种创建Criterion or1或者2的方式...
All my variables (displayName....tagMultiTokenSiteVar ) should be OR. 我的所有变量(displayName .... tagMultiTokenSiteVar)都应该是OR。 Can I add it to the list or something? 我可以将它添加到列表中吗?
Use a Disjunction
: 使用Disjunction
:
Criteria crit = session.createCriteria(YourClass.class);
Disjunction disjunction = Restrictions.disjunction();
disjunction.add(Restrictions.ilike("lu.displayName", search, MatchMode.ANYWHERE));
// ...add others restrictions...
crit.add(disjunction);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.