首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring boot - Entity :如何添加CreatedDate (支持UTC时区)、LastModifiedDate (支持UTC时区)、CreatedBy、LastModifiedBy

在Spring Boot中,可以使用Spring Data JPA和Hibernate来为实体类添加CreatedDate、LastModifiedDate、CreatedBy和LastModifiedBy字段,并支持UTC时区。

首先,需要在实体类中添加相应的字段,并使用注解进行配置。具体步骤如下:

  1. 导入相关依赖:
代码语言:txt
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
  1. 在实体类中添加CreatedDate、LastModifiedDate、CreatedBy和LastModifiedBy字段,并使用相应的注解进行配置:
代码语言:txt
复制
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.LastModifiedBy;
import javax.persistence.*;

@Entity
public class YourEntity {
    // 其他字段...

    @CreatedDate
    @Column(nullable = false, updatable = false)
    private LocalDateTime createdDate;

    @LastModifiedDate
    @Column(nullable = false)
    private LocalDateTime lastModifiedDate;

    @CreatedBy
    @Column(nullable = false, updatable = false)
    private String createdBy;

    @LastModifiedBy
    @Column(nullable = false)
    private String lastModifiedBy;

    // Getter和Setter方法...
}
  1. 配置时区支持: 在Spring Boot的配置文件(如application.properties或application.yml)中,添加以下配置,以支持UTC时区:
代码语言:txt
复制
spring.jpa.properties.hibernate.jdbc.time_zone=UTC
  1. 创建一个AuditorAware实现类:
代码语言:txt
复制
import org.springframework.data.domain.AuditorAware;
import java.util.Optional;

public class AuditorAwareImpl implements AuditorAware<String> {
    @Override
    public Optional<String> getCurrentAuditor() {
        // 返回当前用户的用户名或ID
        // 可以根据实际情况从认证信息中获取
        return Optional.of("当前用户");
    }
}
  1. 配置AuditorAware实现类: 在Spring Boot的配置类中,添加以下配置,以使用上述AuditorAware实现类:
代码语言:txt
复制
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.AuditorAware;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@Configuration
@EnableJpaAuditing(auditorAwareRef = "auditorAware")
public class JpaConfig {
    @Bean
    public AuditorAware<String> auditorAware() {
        return new AuditorAwareImpl();
    }
}

现在,你的实体类就已经添加了CreatedDate、LastModifiedDate、CreatedBy和LastModifiedBy字段,并支持UTC时区。当你保存实体时,这些字段将自动填充和更新。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Data JPA 自动保存操作人 操作时间等

实现自动记录上述信息主要有5个注解: @EnableJpaAuditing:审计功能开关 @CreatedBy:标记数据创建者属性 @LastModifiedBy:标记数据最近一次修改者属性 @CreatedDate...:标记数据创建日期属性 @LastModifiedDate:标记数据最近一次修改日期属性 依赖引用 使用Spring Data JPA要引用依赖spring-boot-starter-data-jpa... org.springframework.boot spring-boot-starter-data-jpa... 实体类标记审计属性 案例使用User实体演示过程,需要在实体对应的字段上添加对应的注解表示是审计属性,另外需要在实体类上开启审计监听,如下: @Entity...@Column(name = "created_date") //保存最近修改日期的字段 private Date createdDate; @LastModifiedDate

1.4K30

Spring Data JPA 的时间注解:@CreatedDate 和 @LastModifiedDate

选择 Spring Data JPA 框架开发时,常用在实体和字段上的注解有@Entity、@Id、@Column等。在表设计规范中,通常建议保留的有两个字段,一个是更新时间,一个是创建时间。...Spring Data JPA 提供了相应的时间注解,只需要两步配置,就可以帮助开发者快速实现这方面的功能。...在实体类上加上注解 @EntityListeners(AuditingEntityListener.class),在相应的字段上添加对应的时间注解 @LastModifiedDate 和 @CreatedDate...updatable = false, nullable = false) private Date createTime; // 省略getter和setter 在Application启动类中添加注解...Data JPA 还提供 @CreatedBy 和 @LastModifiedBy 注解,用于保存和更新当前操作用户的信息(如id、name)。

6.2K30

Spring Data JPA 时间注解:@CreatedDate 和 @LastModifiedDate

选择 Spring Data JPA 框架开发时,常用在实体和字段上的注解有@Entity、@Id、@Column等。在表设计规范中,通常建议保留的有两个字段,一个是更新时间,一个是创建时间。...Spring Data JPA 提供了相应的时间注解,只需要两步配置,就可以帮助开发者快速实现这方面的功能。...在实体类上加上注解 @EntityListeners(AuditingEntityListener.class),在相应的字段上添加对应的时间注解 @LastModifiedDate 和 @CreatedDate...updatable = false, nullable = false) private Date createTime; // 省略getter和setter 在Application启动类中添加注解...Data JPA 还提供 @CreatedBy 和 @LastModifiedBy 注解,用于保存和更新当前操作用户的信息(如id、name)。

4K10

Spring认证中国教育管理中心-Spring Data Couchbase教程三

由于 Couchbase 以更好的方式支持这一点,因此很容易实现。如果您想要自动乐观锁定支持,您需要做的就是@Version在长字段上添加注释,如下所示: 示例 14. 具有乐观锁定的文档。...审核工作由标注领域有@CreatedBy,@CreatedDate,@LastModifiedBy和@LastModifiedDate。持久化实体时,框架将自动在这些字段上注入正确的值。...private String creator; @LastModifiedBy private String lastModifiedBy; @LastModifiedDate...version; //..omitted constructor/getters/setters/... } 注意两者@CreatedBy和@LastModifiedBy都放在一个String...“命名空间参考”涵盖了 XML 配置,所有支持存储库 API 的 Spring Data 模块都支持该配置。“存储库查询关键字”涵盖了存储库抽象一般支持的查询方法关键字。

1.7K30

Java一分钟之-Spring Data MongoDB:MongoDB集成

时间字段的存储与查询问题:MongoDB默认使用UTC时间存储日期,而应用服务器可能使用的是本地时间,这可能导致时间差问题。...解决方案:在实体类中使用@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)注解,并确保在保存和查询时进行时区转换。...private String id; @Indexed(unique = true) private String uniqueField; // 省略其他属性和方法}如何开始添加依赖首先...如果你使用Maven,可以在pom.xml中添加如下依赖: org.springframework.boot <artifactId...通过理解其核心概念、注意上述提到的常见问题与易错点,并实践给出的代码示例,开发者可以高效、安全地集成MongoDB到自己的Spring Boot应用中。

7310
领券