目录

SpringDataJPA存储数据时通过注解自动设置创建时间和修改时间

目录

  • 如果我们此时是通过 Spring Data JPA进行数据库的操作,Spring Data JAP提供了Auditing特性,我们可以通过起很好的实现我们的需求。

  • 其原因基本时通过插入监听器,当我们对被特定注解的数据bean进行操作时,其在中间自动进行一系列的操作,想到个词,补刀~~

  • 我们看下官方的说明:

  • Spring Data provides sophisticated support to transparently keep track of who created or changed an entity and the point in time this happened. To benefit from that functionality you have to equip your entity classes with auditing metadata that can be defined either using annotations or by implementing an interface.

  • 大意如下:Spring Data 提供了复杂的支持来用透明的,无感知的方式去跟踪实体是被谁创建的以及发生此时间的时间点。

  • 基于注解的auditing元数据

  • @CreatedBy,

  • @LastModifiedBy :捕获实体是被谁创建的或者修改

  • @CreatedDate :捕获创建的时间

  • @LastModifiedDate :捕获修改的时间

  • 使用时,我们的数据bean需要添加@EntityListeners(AuditingEntityListener.class) 注解,一边增加auditing的能力,当然,我们的配置应用类还要添加@EnableJpaAuditing 注解去开启auditing特性。

  • 例如:

  •   @Entity
      @EntityListeners(AuditingEntityListener.class)
      		class Customer {
    
      			@CreatedBy
      			private User user;
    
      			@CreatedDate
      			private DateTime createdDate;
    
      			// … further properties omitted
      		}
    
      @SpringBootApplication
      @EnableJpaAuditing
      public class AircraftApplication {
    
      	public static void main(String[] args) {
      		SpringApplication.run(AircraftApplication.class, args);
      	}
      	@Bean
      	public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
      		return args -> {
    
      			System.out.println("Let's inspect the beans provided by Spring Boot:");
    
      			String[] beanNames = ctx.getBeanDefinitionNames();
      			Arrays.sort(beanNames);
      			for (String beanName : beanNames) {
      				System.out.println(beanName);
      			}
    
      		};
      	}
      }