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

自动填入创建\修改时间

作者: 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