2012-01-30 12 views
7

Kriter sorgularımı yazmak için HibernateCriteriaBuilder api kullanıyorum. Criteria içinde if ifadesi gibi koşullu mantığımızın olup olmadığını bilmek istiyorum. ÖrneğinHazırda Bekletme Oluşturma Ölçütü içinde bir koşul var mı?

:

OnemonthList=it.createCriteria().list { 
    if (res_id!='all'){ 
     eq('graresource',resourceInstance) 
    }   
    between('currentdate', fromDate, toDate)   
    projections {  
    trans { 
     countDistinct('id')  
    } 
    groupProperty('currentdate') 
     }     
    } 

bu geçerli mi?

cevap

10

Evet, DSL kriterlerinin içinde herhangi bir koşullu veya döngüsel mantığı kullanabilirsiniz. Örnek çalışacak. döngüler kullanarak örneğin, inanılmaz yararlı olabilir:

Domain.createCriteria().list { 
    params.mapOfConditions.each { 
     eq it.key, it.val 
    } 
} 

dinamik sahip haritasında her giriş için bir eq ekleyecektir.

İlgili konular