hibernate 查询错误! 在线等,急求!

topyyii 2009-03-25 10:46:26
hibernate 查询结果和数据库中数据不一样
hibernate 查询语句 用的是org.springframework.orm.hibernate3.support.HibernateDaoSupport;
List<Dytz> list = new ArrayList<Dytz>();
list=this.getHibernateTemplate().find(
"from com.eway.vo.Dytz where grbh='" + grbh+"'");
for (int i = 0; i < list.size(); i++) {
Dytz dytz = (Dytz) list.get(i);
System.out.print(dytz.getGrbh()+" "+dytz.getTzsj()+" "+" ");
System.out.println(dytz.getTzje());
}

hibernate 查询出来的结果是
199000000003 2009-03-04 00:00:00.0 33333
199000000003 2009-03-04 00:00:00.0 33333
显示sql是 select dytz0_.GRBH as GRBH12_, dytz0_.TZSJ as TZSJ12_, dytz0_.TZJE as TZJE12_ from DYTZ dytz0_ where dytz0_.GRBH='199000000003'
然后用sqlplus 输入hibernate查询的sql 显示的结果是
199000000003 2009-03-04 00:00:00.0 33333
199000000003 2009-03-06 00:00:00.0 1111

数据库中,数据是
199000000003 2009-03-04 00:00:00.0 33333
199000000003 2009-03-06 00:00:00.0 1111
hibernate查询结果不一样啊
求助啊 在线等!

...全文
124 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hell_SP 2009-03-30
  • 打赏
  • 举报
回复
LZ说只定义了一个,是说在hbm.xml文件里面定义的id中只包含了一个?
topyyii 2009-03-30
  • 打赏
  • 举报
回复
已经找到原因 因为表中有2个主键 而我只定义了一个 所以会有重复 不过谢谢各位了 会给分的
dadi5566 2009-03-28
  • 打赏
  • 举报
回复
hibernate和spring集成了吗?
therehere 2009-03-28
  • 打赏
  • 举报
回复
有什么结果吗
楼主回个话
架构修炼之道 2009-03-28
  • 打赏
  • 举报
回复
你试试:

List<Dytz> list = new ArrayList<Dytz>();
list=this.getHibernateTemplate().find(
"from com.eway.vo.Dytz where grbh='" + grbh+"'");
Dytz dytz = null;
for (int i = 0; i < list.size(); i++) {
dytz= (Dytz) list.get(i);
System.out.print(dytz.getGrbh()+" "+dytz.getTzsj()+" "+" ");
System.out.println(dytz.getTzje());
}

你的代码看起来没错,我想问题应该出现在
this.getHibernateTemplate().find()方法里,可以
酒浪子 2009-03-28
  • 打赏
  • 举报
回复
学习!
sirtener 2009-03-28
  • 打赏
  • 举报
回复
每次输出数据的时候都是最后一条数据信息,更换一个循环,或者换个条件试试看
ben0759 2009-03-28
  • 打赏
  • 举报
回复
我也有用spring的hibernate,但是没问题,应该是你配置出错了。
你用spring得dao可以吗?还是你自己写的dao?
第二,你换个条件试下,看看还会有问题吗?
第三,把sql直接用dbms查询,看看结果。
therehere 2009-03-27
  • 打赏
  • 举报
回复
getHibernateTemplate().find 从来没用过
1 它返回的是list吗
2 你试试用转到触发器 在去遍历 我看一些代码很少直接从list中取啊 不知道为什么
3 感觉不是缓存的问题 还是spring这个函数的问题

我也很想知道结果
mumu_java 2009-03-25
  • 打赏
  • 举报
回复
有可能时缓存问题.第二次直接从缓存中读取数据,加快速度 .
hibernate.cache.use_query_cache=false
或者在查询前先session.clear();一下试试.
如果还不行重新启动服务器再查询看看.
topyyii 2009-03-25
  • 打赏
  • 举报
回复
郁闷 没人知道啊??
ohmydog1 2009-03-25
  • 打赏
  • 举报
回复
额。。比较菜,hql看不出啥。。
Dytz dytz =new Dytz ()在for循环外面试试

81,092

社区成员

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

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