需求是这样的:
select a,b from tab1 where
(a='1' or a='2') and b='123'
----------------下面是java代码:
DetachedCriteria dc=DetachedCriteria.forClass(this.getClass().getName());
dc.add( Restrictions.or(Restrictions.or(Restrictions.eq("a","1")),
dc.add(Restrictions.and(Restrictions.eq("b", "123")));
//用上面的代码后,没有将数据查询出来;把hibernate打印的sql语句放到plsql是可以查到数据的
----------------不知道是什么原因
后面把 Restrictions.or 改成用 Restrictions.in ,数据就出来了
Restrictions.or(Restrictions.eq("a","2"))));
dc.add(Restrictions.and(Restrictions.eq("b", "123")));
//用上面的代码后,没有将数据查询出来;把hibernate打印的sql语句放到plsql是可以查到数据的
----------------不知道是什么原因
后面把 Restrictions.or 改成用 Restrictions.in ,数据就出来了
List<String> list=new ArrayList<String>();
list.add("1");
list.add("2");
dc.add(Restrictions.or(Restrictions.in("a", list)));
dc.add(Restrictions.and(Restrictions.eq("b", "123")));
list.add("1");
list.add("2");
dc.add(Restrictions.or(Restrictions.in("a", list)));
dc.add(Restrictions.and(Restrictions.eq("b", "123")));