2012-03-13 56 views
1

如何从Criteria Hibernate中删除null属性。例如不包括Criteria Hibernate中的null属性

选择ENAME,EMPNO,empDate从雇员,其中为ename = '检查' 和EMPNO = '1234' 和empdate = TO_DATE( “22-JUL-2000”, “DD-MON-YYYY”)

在上面的示例中,ename或empno或empdate任何属性都可能为null。

如何在标准实施

我并不担心结果集,我很担心这些限制是如何加入。我婉避免以下代码:

if (((empno!= null) && (empno.trim().length()<=0))) 
    { 
     criteria.add(Restriction.eq("empno", empno)) 
    } 

回答

2

一般来说,你不能从结果集中删除单个属性,但你可以设置过滤器导致了标准,如果某个属性为空值:

criteria.add(Expression.isNotNull("ename")); 

更多详细信息:Hibernate Chapter 16. Criteria Querieshere