teleport01
2009-04-20 15:49 阅读 549
已采纳

hibernate执行hql语句做查询操作,返回的为什么全是null!

比如说
[code="java"]
String hql = "FROM Ciuser U";
List result = query.createQuery(hql).list();
[/code]
经测试,list.size()==2(表明是从数据库内查询出数据了有两条),但是list里面装的都是null,而不是我的Ciuser对象。
这是什么原因,请各位执教。
[b]问题补充:[/b]
就是遍历出来全是null。
数据库里有两条数据,result.size()确实也是2。
但遍历出来的result.get(i)就是个null。
[b]问题补充:[/b]
文件映射是肯定没问题的,不然在执行hql的时候就要抛异常了。
我所操作的表是没有主键的,配置文件大致如下:
[code="java"]















[/code]
我操作的表没主键,配置文件都是这种格式,唯独操作这张表时有问题,返回对象是null。问题相当奇怪,晕啊。
[b]问题补充:[/b]
原因不是有没有主键的问题,没主键的表hql一样能查一样能save(Object)、delete(Object),配置文件就是我刚才贴出来的一样。
现在还是追问为什么list里面装的都是null,但是size()又是有数据的。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    wanghaolovezlq wanghaolovezlq 2009-04-20 16:11

    怎么可能呢,你遍历这个list,一个个取出来看了没有啊

    点赞 评论 复制链接分享
  • wanghaolovezlq wanghaolovezlq 2009-04-20 16:22

    这个真是没理由啊,怎么有这么怪的问题,
    result.size()确实也是2?理论上就一定是有对象了,这个太怪了,从没遇到这种
    会不会是人的hql的Ciuser没有映射文件,还是映射得有点不对,

    点赞 评论 复制链接分享
  • wanghaolovezlq wanghaolovezlq 2009-04-20 16:54

    原来是操作的表没主键,这个才是关键嘛,你一来就要说这个,

    你改用另外一种方式一定ok

    [code="java"]
    String hql = "select * FROM CIUSER";
    List result = query.createSQLQuery(hql).list();

    [/code]

    点赞 评论 复制链接分享

相关推荐