hibernate4 identifier of an * cn.gov.share.Item was altered from 12 to 23

               最近在项目开发中突然遇到一个之前没有遇到的问题identifier of an  instance of com.gov.share.Item was altered from 12 to 23的错误,debug调试也没有找到对应的id,之后网上搜索了一下基本上都是说是hibernate实体定义的类型与数据库定义的类型不一致导致的, 我检查了我代码与数据库,类型一致,最后检查代码,发现是对象定义时之后由于使用快捷键没仔细看导致的:

    例如商品中有商品详情 商品类:Goods  详情 GoodsItem

    错误写法:

   

              Goods good = new Goods();
              good.setId("1234");
              good.setNo("G23532");
              good.setName("商品");
              GoodItem item = new GoodItem();
              List<GoodItem> itemList = new ArrayList<GoodItem>();//项目中实际为传过来的
              for(GoodItem item : itemList) {
                      item.setId("2354");
                      item.setPrice(125);
                      item.setNo("323253");

              }
之后保存数据库就会出现错误

 其中正确的写法是

 

      Goods good = new Goods();
              good.setId("1234");
              good.setNo("G23532");
              good.setName("商品");
              GoodItem item ;
              List<GoodItem> itemList = new ArrayList<GoodItem>();//项目中实际为传过来的
              for(GoodItem item : itemList) {
                    item = new GoodItem();

                      item.setId("2354");
                      item.setPrice(125);
                      item.setNo("323253");

              }

 原因很简单,创建一个对象了重复赋值导致的,这种问题很容易在代码修改的时候使用复制粘贴的方式不检查导致的。

 

java学习交流群:513650703

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值