美文网首页
自动填入创建\修改时间

自动填入创建\修改时间

作者: 8813d76fee36 | 来源:发表于2018-01-20 08:29 被阅读253次

    数据库中每条数据的往往需要记录创建及修改时间,可以从数据库表设置或利用SpringDataJPA自动设置。

    使用SpringDataJPA实现

    在SpringDataJPA中提供了@CreatedDate、@LastModifiedDate及@LastModifiedBy注解,分别用于自动填写创建时间、修改时间和修改人。

    • 创建实体类基类(可跳过)
      由于没个实体类都会包含id、createTime、updateTime等共同的字段,我们可以把这些字段提取到一个基类中,让其他实体类继承。


      提取基类

      其中@MappedSuperclass注解是告诉JPA在生成表结构的时候需要带上基类中的字段。
      @EntityListeners(AuditingEntityListener.class)注解是实现JPA自动填入时间的关键注解。

    • 实体类继承基类


      实体类

    注@Column注解的columnDefintion注解可以对数据库表的该列属性进行设置,如图中则规定了decimal的格式。

    • 启动类添加@EnableJpaAuditing注解
    @EnableJpaAuditing注解

    完成以上配置即可。字段上的注解和启动类的注解是关键配置。

    使用MySQL数据库实现

    MySQL数据库表配置默认值也是可以实现自动插入时间。
    好像需要MySQL5.6及以上版本支持

    • 建表SQL

    create_time timestamp not null default current_timestamp comment '创建时间',
    update_time timestamp not null default current_timestamp on update current_timestamp comment '修改时间'

    • 实体类注解
      这次需要在实体类上加@DynamicUpdate注解


      @DynamicUpdate

      配置完成。

    相关文章

      网友评论

          本文标题:自动填入创建\修改时间

          本文链接:https://www.haomeiwen.com/subject/qilaoxtx.html