HIbernate 查询建立在两张表上的视图,数据丢失的问题

我的问题与相同:http://www.iteye.com/topic/57823

表是按年份分的,例如XXX2006,XXX2007
为了查询方便,建立一个视图XXX,就是简单的
select * from XXX2006 union all  select * from xxx2007

建立配置文件,将视图的所有列全部作为复合主键
建立POJO,也是只有一个id,在id里才是所有列

然后查询的时候,在日志里能显示出查询的结果

但是在返回List的时候,却只有一部分,有一部分为null,不知道什么原因。

如果不用视图,只用单个表,就无此问题。



有两张表,用union all接起来的视图,那么在hibernate中,视图的映射会把所有的字段作为复合型的主键映射到hibernate中,其中如果其中,只要有一个字段为空值,查询出来的此条记录结果就会整个地为空。
网上提供的办法:修改映射的复合型主键,将两张表的主键合起来作为复合型主键,其余字段作为普通值

你可能感兴趣的:(Hibernate)