• HibernateTemplate updateOrSave()方法只update,不save


      今天做表内容复制时,遇到了updateOrSave()方法,数据库中没有数据,却总是执行update方法。

       工作的内容是把两张表的内容复制到另外两张表中,其中要复制的两张表是多对一关系,用来存储的

    两张复制表之间也有存储关系,即现在有两张表A和B,要把A和B的内容复制到C和D里面,其中A和B之间是一对多,

    C和D之间也是一对多。当获取了A表的内容之后,需要把这些内容复制到C里面,C在做updateOrSave的时候,会自动

    的把B的内容复制到D里面,但是C里面的内容却无法复制,老师执行update方法,但是数据库里面根本没有数据。

    后来同事帮忙看了一下,原来是C表的POJO上面添加注解:

    @SequenceGenerator(name = "generator", allocationSize = 1, sequenceName = "seq_ESBLOGMAINSTORE")

    @Id
    @GeneratedValue(strategy = SEQUENCE, generator = "generator")
    @Column(name = "ID")
    public String getId() {

    }

    这样hibernate在执行updateOrSave的时候总是会去生成一个ID,但是该表的ID不需要自己生成,是直接复制过来的,

    把@SequenceGenerator(name = "generator", allocationSize = 1, sequenceName = "seq_ESBLOGMAINSTORE")

    和@GeneratedValue(strategy = SEQUENCE, generator = "generator")两个注解去掉即可复制。

  • 相关阅读:
    11. Container With Most Water
    9. Palindrome Number
    375. 猜数字大小 II leetcode java
    leetcode 72 编辑距离 JAVA
    73. 矩阵置零 leetcode JAVA
    快速排序 JAVA实现
    63. 不同路径 II leetcode JAVA
    重写(override)与重载(overload)
    62 不同路径 leetcode JAVA
    leetcode 56 合并区间 JAVA
  • 原文地址:https://www.cnblogs.com/yurujun/p/3616248.html
Copyright © 2020-2023  润新知