zoukankan      html  css  js  c++  java
  • org.hibernate.HibernateException: identifier of an instance of xxxx.models.Rkdj was altered from 1075 to 0

    错误的原因是在一个事务中,主键是不能修改的。

    1、因为业务需求,我需要在一个事务中新增Rkdj这个对象的几条数据,因为考虑到部分字段数据一样,所以在for循环外面Rkdj it = new Rkdj();,在for循环外面设置好相同的数据的字段,在for循环里面设置不同数据的字段,然后保存,最后发现数据库里面只是新增了一条数据,于是打印日志,发现第一次循环的时候id为0,保存的时候,id自增长策略使得id有了具体的值,后面id都是不变的,于是后面的循环都变成了修改,导致数据库只有一条数据。

    2、基于上面的发现,我在想,如果在for循环里面把id设为0然后再保存,可不可行呢?结果就报了标题的错误,在一个事务中,主键是不能修改的!还是老老实实在for循环里面每次都new一个新的对象吧。

  • 相关阅读:
    CH负责内容的两个人——北漂18年(66)
    perl 跨行匹配;
    elk之nginx
    perl 分析binlog 定位错误sql 思路
    rsyslog 日志格式和输出
    rsyslog 定义模板
    rsyslog ~ 波浪号
    过滤器
    rsyslog masg和rawmsg的区别
    金融行业的BI应用分析
  • 原文地址:https://www.cnblogs.com/pzw23/p/14577401.html
Copyright © 2011-2022 走看看