Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 将休眠或条件放入条件中_Hibernate_Criteria - Fatal编程技术网

Hibernate 将休眠或条件放入条件中

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

你能建议我需要在hibernate标准中为其中一个参数设置or条件吗?我现在得到一个参数abcsystem,它的值也可以为null,也可以不为null,但如果它的值不为null,那么就按原样将其值设置为参数abcsystem,请建议如何实现这一点

    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()
的值,并:

  • 如果它不为空,则使用它
  • 如果为空,请不要使用它
如果这是我们需要的,则评估不应影响DB引擎,我们可以在服务器/应用程序运行时进行:

Criteria criteria = session.createCriteria(ils.class);
criteria.add(Restrictions.eq("Code", ok.getId()));

if(ok.getabcSystem() != null) {
    criteria.add(Restrictions.eq("abcystem", ok.getabcSystem()))
}
...