在一个查询的功能中,我需要实现
where a='b' and c='d' and (e like '%f%' or g like '%h%' or j like '%k%' or ....)
的功能,括号中的or语句是动态的,个数不定。
前面的a='b' and c='d'可以使用
[code]DetachedCriteria detachedCriteria=DetachedCriteria.forClass(abc.class);
detachedCriteria.add(Restrictions.eq("a","b"));
detachedCriteria.add(Restrictions.eq("c","d"));[/code]
但是在增加后面的查询条件时发现Restrictions.or只支持两个条件的or查询,hibernate手册中的例程如下:
[code]List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.add( Restrictions.or(
Restrictions.eq( "age", new Integer(0) ),
Restrictions.isNull("age")
) )
.list();[/code]
求教各位,这个问题该怎么解决,
万分感谢!
where a='b' and c='d' and (e like '%f%' or g like '%h%' or j like '%k%' or ....)
的功能,括号中的or语句是动态的,个数不定。
前面的a='b' and c='d'可以使用
[code]DetachedCriteria detachedCriteria=DetachedCriteria.forClass(abc.class);
detachedCriteria.add(Restrictions.eq("a","b"));
detachedCriteria.add(Restrictions.eq("c","d"));[/code]
但是在增加后面的查询条件时发现Restrictions.or只支持两个条件的or查询,hibernate手册中的例程如下:
[code]List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.add( Restrictions.or(
Restrictions.eq( "age", new Integer(0) ),
Restrictions.isNull("age")
) )
.list();[/code]
求教各位,这个问题该怎么解决,
万分感谢!