日期:2014-05-17  浏览次数:20757 次

hibernate查询和直接在数据库运行sql的结果不一样
如题,我吧hibernate要执行的sql粘贴到数据库执行,但是执行的结果不一样,什么原因?
1、数据是从两个表(A和B)中取出来的,并且这两个表各种字段都是一样的(业务原因)
2、sql:select distinct T1.* from a T1 where.... union all select distinct T2.* from b T2 where... order by...
hibernate:
id  
1(表A数据)
1(表A数据)

直接在数据库中执行:
id
1(表A数据)
1(表B数据)

直接在数据库中的结果是所期望的结果

------解决方案--------------------
hibernate中form后的是实体类名.你定义实体类中的字段
sql和hql访问数据库的机制不一样的
------解决方案--------------------
一般都是一样的其实hibernate就把jdbc给封装了 如果你的实体类和sql语句都是对应表中的一样的话
应该是可以得到你想要的期望值可能是不是你的hql语句写的不对
------解决方案--------------------
你要仔细看 不一样在哪里?

是少了记录 ? 还是压根就是 返回字段不正确?

然后跟踪代码