页面查询数据和数据库数据不一致

页面查询数据和数据库数据不一致遇到的两种情况:
1.hibernate 使用中 表CARD_SIGN,CARDSIGNID为主键,因需求需要将此表主键变更为复合主键在原有主键字段的基础上又增加了一个字段CARDTYPE作为复合主键。此时使用的是hibernate本身的查询方法。相同的hql查询结果显示页面数据和数据库查询出来的结果不一致。在原有主键CARD_SIGN两条数据的情况下,页面展示的都是两条相同数据和数据库数据不一致,查询数据总条数相同。原因:hibernate的配置文件hbm.xml中的id配置。id标签中的column字段应该配置的是唯一的列,但是我的数据库表中是非唯一中,每次查询都会出现很多条记录,导致数据拿出来的时候,根据id列拿,系统就只拿出了第一个id的数据,还拿了两遍,数据总量是对的,每条记录都有一条重复的跟着。

解决方案:用一个唯一的字段来代替id中非唯一的字段。或是规避hibernate的hbm.xml同数据库的关系使用createSQLQuery()方法直接从对象中取值,再或修改hbm.xml配置文件中的主键为复合主键及相关部分。

2.hibernate 中使用createSQLQuery()方法查询数据,页面展示的一列字段中只取了该字段的第一位数据。查看发现ORACLE数据库表中该字段是char 长度为3。

解决方案:将该字段数据类型更改为varchar2类型即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值