资讯专栏INFORMATION COLUMN

java数据库基类的实现 (基于Spring Data JPA提供的审计功能)

LiangJ / 3103人阅读

摘要:数据库基类的实现目的统一管理数据库共有字段,实现创建时间,创建人,修改时间,修改人的自动更新。注意事项需要在启动类上面注解

java数据库基类的实现

目的:
统一管理数据库共有字段,实现创建时间,创建人,修改时间,修改人的自动更新。

创建基础类:

</>复制代码

  1. @Data
  2. @EntityListeners(AuditingEntityListener.class)
  3. @MappedSuperclass
  4. public class BaseModel {
  5. @Id
  6. @GeneratedValue(generator = "system-uuid")
  7. @GenericGenerator(name = "system-uuid", strategy = "uuid")
  8. private String id;
  9. @CreatedDate
  10. private Date createTime;
  11. @CreatedBy
  12. private String createName;
  13. @LastModifiedDate
  14. private Date lastChangeTime;
  15. @LastModifiedBy
  16. private String updateName;
  17. }

注解说明:

</>复制代码

  1. 1)@Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
  2. (2)@EntityListeners(AuditingEntityListener.class):声明实体监听器:用于实体修改时做处理
  3. 3)@MappedSuperclass:声明该类为实体父类·不会映射多带带的表··而是把字段映射到子类表中
  4. (4)@CreatedDate:表示该字段为创建时间时间字段,在这个实体被insert的时候,会自动为其赋值
  5. 5)@CreatedBy:表示该字段为创建人,在这个实体被insert的时候,会自动为其赋值
  6. 6)@LastModifiedDate、@LastModifiedBy同理。

创建子类

</>复制代码

  1. @Entity
  2. @Table(name = "zzy_person")
  3. @Data
  4. public class Person extends BaseModel{
  5. private String name;
  6. private String qq;
  7. private Integer age;
  8. private String address;
  9. }

实现AuditorAware接口

</>复制代码

  1. @Component
  2. public class SpringSecurityAuditorAware implements AuditorAware {
  3. @Value(value = "${user.name}")
  4. private String userName;
  5. @Override
  6. public String getCurrentAuditor() {
  7. return userName;
  8. }
  9. }

说明:此处由于自己是学习,因此选择将人员信息放在配置文件里面,这里直接引入,实现测试,实际开发中,一般都是调用方法获取人员信息,此处的实现可以根据自身需求修改。

注意事项:
需要在启动类上面注解:@EnableJpaAuditing

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68106.html

相关文章

  • Spring Boot QuickStart (5) - Spring Data JPA

    摘要:关联关系的关联关系定义上,感觉并不是很灵活,姿势也比较难找。如,定义在关联关系上的参数可以设置级联的相关东西。因为序列化会涉及到实体类关联对象的获取,会触发所有的关联关系。 接(4) - Database 系列. Java Persistence API,可以理解就是 Java 一个持久化标准或规范,Spring Data JPA 是对它的实现。并且提供多个 JPA 厂商适配,如 Hi...

    sutaking 评论0 收藏0
  • Spring Data JPA ——默认方法使用

    摘要:暂未验证声明主键。为提供一个默认的构造方法。提供一个不可为的属性的构造方法以防止出错。根据字段查询并排序根据字段查询并排序,默认是顺序。统计对象数量统计对象数量这是调用接口的方法来统计对象数量。 初探 SDJ 先让我们来巩固一下 Java 的基础知识。Java 是面向对象的语言,目的是解决现实生活中的问题,可以通过使用类来包装现实生活中的事物成对象、使用属性来描述对象的特点并使用方法来...

    melody_lql 评论0 收藏0
  • 【从零入门系列-2】Spring Boot 之 据库实体定义实现

    摘要:文章系列从零入门系列之从零入门系列之程序结构设计说明前言本篇文章开始代码实践,系统设计从底向上展开,因此本篇先介绍如何实现数据库表实体类的设计实现。主键由数据库自动生成主要是自动增长型主键由程序控制。 文章系列 【从零入门系列-0】Sprint Boot 之 Hello World 【从零入门系列-1】Sprint Boot 之 程序结构设计说明 前言 本篇文章开始代码实践,系统...

    nemo 评论0 收藏0
  • 《 Kotlin + Spring Boot : 下一代 Java 服务端开发 》

    摘要:下一代服务端开发下一代服务端开发第部门快速开始第章快速开始环境准备,,快速上手实现一个第章企业级服务开发从到语言的缺点发展历程的缺点为什么是产生的背景解决了哪些问题为什么是的发展历程容器的配置地狱是什么从到下一代企业级服务开发在移动开发领域 《 Kotlin + Spring Boot : 下一代 Java 服务端开发 》 Kotlin + Spring Boot : 下一代 Java...

    springDevBird 评论0 收藏0
  • 猫头鹰深夜翻译:为什么要使用Spring Boot?

    摘要:初次使用的人往往会困惑,不知道该使用哪种方法。目前来说,团队推荐使用基于的方法来提供更高的灵活性。配置,从而在应用启动时执行脚本来初始化数据库。目前为止我们没有任何消息需要配置,所以只在文件夹中创建一个空的文件。将配置为,它包含的上下文。 前言 spring是一个用于创建web和企业应用的一个很流行的框架。和别的只关注于一点的框架不同,Spring框架通过投资并组合项目提供了大量的功能...

    Jaden 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<