hibernate中Restrictions.in的问题
public List<E> query(Integer[] indexs) {
......
......
......
List<E> beans = new ArrayList<E>();
Criteria c = session.createCriteria( beanClass );
if ( indexs.length > 1 ){
c.add( Restrictions.in("indexs", indexs) );
beans = c.list();
} else {
c.add( Restrictions.eq("indexs", indexs[0]) );
E bean = (E) c.uniqueResult();
beans.add( bean );
}
return beans;
}
上面的这段代码,原本写法如下
public List<E> query(Integer[] indexs) {
......
......
......
List<E> beans = new ArrayList<E>();
Criteria c = session.createCriteria( beanClass );
c.add( Restrictions.in("indexs", indexs) );
beans = c.list();
return beans;
}
但是出现一个奇怪的问题:
当数组 indexs的元素只有一个时,beans 集合的元素有2个,而且是重复的,为了不让它重复,所以才对 indexs 的length进行判断.
检查了hibernate生成的sql语句,没有问题,而且sql执行结果只有一条记录,但是beans返回的集合对象确实有2个,而且是重复的,
我的问题是,为什么 indexs 会出现重复?
先谢了!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论