zoukankan      html  css  js  c++  java
  • Spring Date Jpa on update current_timestamp 自动维护创建时间和更新时间

    在数据库里设置默认值current_timestamp可以维护创建时间,设置on update current_timestamp 可以维护更新时间。在JPA中应该如何去做呢?这里还是以上篇Topic为基础,给这个类添加这两个字段。

    @Entity
    @Table
    public class Topic implements Serializable{
    
    
        private static final long serialVersionUID = -7752115605498533357L;
    
        @Id
        @GeneratedValue
        private Integer id;
    
        private String name;
    
        @OneToMany(cascade = {CascadeType.ALL},fetch=FetchType.EAGER,orphanRemoval=true)
        @JoinColumn(name = "topic_id")
        List<Subscriber> subscribers;
    
        @Column(name = "create_time",insertable = false,updatable = false,columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
        private Date createTime;
        @Column(name = "update_time",insertable = false,updatable = false,columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
        private Date updateTime;
    
    }

    columnDefinition和后面的设置,就等于在数据库中设置DEFAULT CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP了,这样设置就会让createTime成为创建时间,updateTime成为更新时间,数据库会自动去维护他。

    但是还有一个问题,jpa调用save方法时,会把这两个字段覆盖掉。所以这里需要insertable = false,updatable = false,这样jpa更新插入时就不会去更新这个字段了,而是完全由数据库维护。

  • 相关阅读:
    mysql安装与基本管理,mysql密码破解
    非阻塞IO模板
    多路复用IO模板
    第四模块:网络编程进阶&数据库开发 练习
    理解Queue队列中join()与task_done()的关系
    第四模块:网络编程进阶&数据库开发 口述
    SQLite
    rest_cherrypy
    SaltStack Returners
    kafka集群安装,配置
  • 原文地址:https://www.cnblogs.com/csonezp/p/7459958.html
Copyright © 2011-2022 走看看