Hibernate 将休眠或条件放入条件中
你能建议我需要在hibernate标准中为其中一个参数设置or条件吗?我现在得到一个参数abcsystem,它的值也可以为null,也可以不为null,但如果它的值不为null,那么就按原样将其值设置为参数abcsystem,请建议如何实现这一点Hibernate 将休眠或条件放入条件中,hibernate,criteria,Hibernate,Criteria,你能建议我需要在hibernate标准中为其中一个参数设置or条件吗?我现在得到一个参数abcsystem,它的值也可以为null,也可以不为null,但如果它的值不为null,那么就按原样将其值设置为参数abcsystem,请建议如何实现这一点 Criteria criteria = session.createCriteria(ils.class); criteria.add(Restrictions.eq("Code", ok.getId())); //****cr
Criteria criteria = session.createCriteria(ils.class);
criteria.add(Restrictions.eq("Code", ok.getId()));
//****criteria.add(Restrictions.eq("abcystem", ok.getabcSystem())); // ****criteria to be modified such that abc system can be null or //****we need to set the value of abc system whatever is coming in ok.getabcSystem() in the paremeter abcystem
criteria.add(Restrictions.
criteria.add(Restrictions.eq("tCode", ok.tCode()));
ment = (ils) criteria.uniqueResult();
试试这个
Criteria criteria = session.createCriteria(ils.class);
criteria.add(Restrictions.eq("Code", ok.getId()));
// OR condition
criteria.add( Restrictions.or(
Restrictions.eq( "abcystem", ok.getabcSystem()),
Restrictions.isNull("abcystem")
));
criteria.add(Restrictions.eq("tCode", ok.tCode()));
// your result here ment = (ils) criteria.uniqueResult();
如果我正确阅读了您的需求,我们必须做的是评估
ok.getabcSystem()
的值,并:
- 如果它不为空,则使用它
- 如果为空,请不要使用它
Criteria criteria = session.createCriteria(ils.class);
criteria.add(Restrictions.eq("Code", ok.getId()));
if(ok.getabcSystem() != null) {
criteria.add(Restrictions.eq("abcystem", ok.getabcSystem()))
}
...