2014-09-30 59 views
1

你能請告知我需要把狀態或休眠標準爲is..I我得到一個參數abcsystem現在它的值可以爲空也是參數之一或者它不能零還,但如果它的值不是null,則設置它的價值,因爲它是參數abcystem,因爲它是,請告知如何做到這一點...把休眠或條件標準

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(); 

回答

0

試試這個

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(); 
1

如果我讀了你的正常需求,我們要做的,是評價ok.getabcSystem()的價值d:

  • 使用它,如果它是
  • 使用它,如果它是NULL

如果這是我們需要的,評價不應該佈雷到數據庫引擎,我們可以做到這一點在我們的服務器/應用程序運行時:

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

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