hibernate查询同样名字时候出现的奇怪问题!

jianmin001 2007-08-30 11:50:04
用以下语句查询表中所有名字为“su”的数据

Session session = HibernateSessionFactory.getSession();
Criteria criteria = session.createCriteria(TUser.class);

criteria.add(net.sf.hibernate.expression.Expression.eq("name", "tu"));

List list = criteria.list();
System.out.println("size is:"+list.size());

for(int i=0;i<list.size();i++){
  TUser user = (TUser)list.get(i);
  System.out.println("User["+i+"]\t"+user.getName()+"----userid is:"+user.getId()+"----user'age is:"+user.getAge());

}


可惜出现问题了,调试发现:
Hibernate: select this.id as id0_, this.name as name0_, this.age as age0_, this.email as email0_, this.group_id as group_id0_ from t_user this where this.name=?
Hibernate: select address0_.user_id as user_id__, address0_.id as id__, address0_.id as id0_, address0_.address as address0_, address0_.zipcode as zipcode0_, address0_.tel as tel0_, address0_.type as type0_, address0_.user_id as user_id0_, address0_.idx as idx0_ from t_address address0_ where address0_.user_id=? order by address0_.zipcode asc
Hibernate: select address0_.user_id as user_id__, address0_.id as id__, address0_.id as id0_, address0_.address as address0_, address0_.zipcode as zipcode0_, address0_.tel as tel0_, address0_.type as type0_, address0_.user_id as user_id0_, address0_.idx as idx0_ from t_address address0_ where address0_.user_id=? order by address0_.zipcode asc
Hibernate: select address0_.user_id as user_id__, address0_.id as id__, address0_.id as id0_, address0_.address as address0_, address0_.zipcode as zipcode0_, address0_.tel as tel0_, address0_.type as type0_, address0_.user_id as user_id0_, address0_.idx as idx0_ from t_address address0_ where address0_.user_id=? order by address0_.zipcode asc



size is:5
User[0] tu----userid is:78----user'age is:8
User[1] tu----userid is:177----user'age is:2345678
User[2] tu----userid is:181----user'age is:25
User[3] null----userid is:182----user'age is:null
User[4] null----userid is:183----user'age is:null

显然,名字都是"su"的记录有5条,可是,为啥查询到的第四条和第五条记录的user.getName(),会返回null呢?同样,这两条记录的User.getAge()也返回null,

问题出现在哪里呢?

首先我排除一种情况,这两条记录在数据库中,是不为null的!


...全文
102 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yztommyhc 2007-08-30
  • 打赏
  • 举报
回复
net.sf.hibernate.expression.Expression 换成 org.hibernate.criterion.Expression 看看。
jianmin001 2007-08-30
  • 打赏
  • 举报
回复
楼上的,用的hibernate2.0

你的意思是指,hibernate2.0偶尔会出现这样的问题,而不是我程序本身写错了么?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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