Hibernate主键设置错误造成的bug

本文分享了在使用Blazeds和Hibernate时遇到的多主键问题及解决方案,包括通过添加GUID字段作为辅助主键来解决多关键字问题,并介绍了如何调整数据库、Hbm配置文件和POJO类。

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

      项目最近忙于录入数据,在录入数据的过程中发现了一个问题,由于blazeds做了前后台的连接机制,在hibernate处理数据库的多关键字时采取的是增加一个字段GUID,在数据库中还是其他几个关键字作为Primary Key,GUID只是作为一个辅助的字段,在Hibernate的映射文件Hbm中需要将GUID设置为主键,而pojo也要做相应的修改,即将GUID的get函数改为几个关键字的String字符串拼凑的结果返回。

      有些表设置主键出错了,只设置了单主键,在录入数据之后,查询出来的结果,出现了多个重复的记录,在前后台debug调试了半天,没有发现异常,于是我查了一下数据字典,再跟hbm文件一对照,知道是主键设置错误造成的结果,呵呵,于是修改数据库,hbm配置文件,pojo类,重新编译项目并发布,ok,一切正常。

  关于解决Hibernate多主键的这个方法是以前项目经理尝试的(据他说是由于Blazeds不能使用Hibernat的多主键),不知道Hiberntae有没有更好的方法处理多主键呢,希望高手指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值