hibernate循环查询怎么返回的List数组没有变化

luckyc2008 2011-10-18 01:51:43
dao
public List<T> ListByCondition(String condition) throws DaoException {
try {
return (List<T>) getHibernateTemplate().find(
" from " + klass.getName() + " where 1=1 " + condition
+ " ");
} catch (DataAccessException e) {
throw new DaoException(getKlass() + ".ListByCondition异常 : "
+ e.toString());
}
}

for循环2次,hibernate返回的list地址一样,sql如下
Hibernate:
select
tzhaobbaoj0_.SN as SN36_,
tzhaobbaoj0_.WUPMC as WUPMC36_,
from
ZHAOB.T_ZHAOB_BAOJ tzhaobbaoj0_
where
1=1
and tzhaobbaoj0_.XIANGMUBH='1222'
and tzhaobbaoj0_.GONGYSBH='598'
[com.yunwang.zhaob.model.TZhaobBaojId@696aa494, com.yunwang.zhaob.model.TZhaobBaojId@e79a2535]
Hibernate:
select
tzhaobbaoj0_.SN as SN36_,
tzhaobbaoj0_.WUPMC as WUPMC36_,
from
ZHAOB.T_ZHAOB_BAOJ tzhaobbaoj0_
where
1=1
and tzhaobbaoj0_.XIANGMUBH='1222'
and tzhaobbaoj0_.GONGYSBH='597'
[com.yunwang.zhaob.model.TZhaobBaojId@696aa494, com.yunwang.zhaob.model.TZhaobBaojId@e79a2535]

这两个sql语句是不一样的,怎么返回的List都是第一个sql语句查询的list

...全文
156 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghpipi 2011-10-18
  • 打赏
  • 举报
回复
你的list定义是在循环外面吗?如果在外面,就把他放到循环里面试试
luckyc2008 2011-10-18
  • 打赏
  • 举报
回复
thanks,因为是视图,所以我修改配置文件指定一列为主键,这两个sql查询出来的记录虽不一样,但是主键是一样的,可见hibernate是根据主键是否一样来返回记录的。
nizhicheng 2011-10-18
  • 打赏
  • 举报
回复
那你检查下 是不是你 HIBERNATE 配置文件 属性和列名 配置有误~~所以会造成HIBERNATE 专换成SQL 变成一样了
luckyc2008 2011-10-18
  • 打赏
  • 举报
回复
恩,是的,怎么dao返回的list的地址都是一样的啊,好奇怪
nizhicheng 2011-10-18
  • 打赏
  • 举报
回复
Hibernate:
select
tzhaobbaoj0_.SN as SN36_,
tzhaobbaoj0_.WUPMC as WUPMC36_,
from
ZHAOB.T_ZHAOB_BAOJ tzhaobbaoj0_
where
1=1
and tzhaobbaoj0_.XIANGMUBH='1222'
and tzhaobbaoj0_.GONGYSBH='598'
[com.yunwang.zhaob.model.TZhaobBaojId@696aa494, com.yunwang.zhaob.model.TZhaobBaojId@e79a2535]
Hibernate:
select
tzhaobbaoj0_.SN as SN36_,
tzhaobbaoj0_.WUPMC as WUPMC36_,
from
ZHAOB.T_ZHAOB_BAOJ tzhaobbaoj0_
where
1=1
and tzhaobbaoj0_.XIANGMUBH='1222'
and tzhaobbaoj0_.GONGYSBH='597'
[com.yunwang.zhaob.model.TZhaobBaojId@696aa494, com.yunwang.zhaob.model.TZhaobBaojId@e79a2535]

这些都是控制台打印出来的信息吗?
luckyc2008 2011-10-18
  • 打赏
  • 举报
回复
我这个是试图,查询的结果不一样;
页面取值:
for(int i =0 ;i<zhaobruws.size();i++)
{

List<TZhaobBaojId> zhaobbaojs = daobaojview.ListByCondition(" and xiangmubh = '"+xiangmbh+"' and gongysbh = '"+zhaobruws.get(i).getGongysbh()+"' ");

}
zhaobbaojs 打印出来是一样的。
nizhicheng 2011-10-18
  • 打赏
  • 举报
回复
你拿这2句SQL直接去数据库查 看看结果有区别吗~~~如果结果集一样就没问题 。
如果有问题 看下页面的list是如何赋值的~~

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧