jpa hibernate 中自动update数据的bug

博客内容描述了一个Java开发者遇到的问题,他们在使用HashMap时,由于没有将long类型的id转换为intValue,导致在执行save操作后自动触发了未预期的update语句,最终引发了错误。问题似乎与数据库分库处理有关,但作者对于为何执行update语句感到困惑。他们正在寻求社区的帮助,以理解这一神秘行为并找到解决方案。
摘要由CSDN通过智能技术生成

1.复现bug过程

首先这里发送消息 执行了一次save 操作
如果不转换为intvalue那么执行完save命令后会自动执行一次update语句 然后就会报错
可能由于进行了分库处理所以报错了 但是执行update语句很迷

            HashMap<String, Object> integerHashMap = new HashMap<String, Object>(1);
            //这里为问题代码  其中id为long类型  如果不转换为intvalue那么执行完save命令后会自动执行一次update语句 然后就会报错
            integerHashMap.put("id", prize.getId());
            messageService.sendMessage(MessageConstants.SYSTEM_ACCOUNT, cache.getDidUser().getDid(),
                    MessageTextScopeEnum.PRIVATE.getId(), MessageTextTypeEnum.ACTIVITY_TARGET.getId(),
                    MessageTextBusinessTypeEnum.CHIP_TARGET.getId(),
                    integerHashMap, "恭喜您获得了一个新碎片", "恭喜你获得了一个新碎片,集齐碎片即可领取礼品,快来看看吧!", null);

描述不太清楚不知道有没有网友遇见相似的情况抽象描述下 哈哈哈

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值