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

本文讨论了在使用Hibernate处理包含复合型主键的视图时,如何解决查询结果部分为null的问题。通过将两张表的主键合成为复合型主键,并将其他字段作为普通值映射,可以有效避免此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的问题与相同: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中,其中如果其中,只要有一个字段为空值,查询出来的此条记录结果就会整个地为空。
网上提供的办法:修改映射的复合型主键,将两张表的主键合起来作为复合型主键,其余字段作为普通值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值