详解Spring data 定义默认时间与日期的实例

yizhihongxing

关于详解 Spring Data 定义默认时间与日期的实例的攻略,以下是完整的步骤:

第一步:在 Entity 类中定义默认时间和日期

在 Spring Data 中,我们可以通过定义一个 BaseEntity 来设置默认的时间和日期。在 BaseEntity 中,我们定义了 @CreatedDate 和 @LastModifiedDate 注解,可以用于更新时间戳的值。

代码示例:

@Data
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @CreatedDate
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "created_on")
    private Date createdOn;

    @LastModifiedDate
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "updated_on")
    private Date updatedOn;
}

在上面的代码中,我们使用 @CreatedDate 和 @LastModifiedDate 注解来标记 createdOn 和 updatedOn 两个属性。这些属性都是时间戳类型的,它们用于将当前日期和时间自动保存在数据库中。

第二步:配置 JPA Auditing

要让 Spring Data 根据 BaseEntity 中的时间戳注解来自动维护属性值,我们需要配置 Spring Data JPA。我们需要使用 @EnableJpaAuditing 注解来开启 JPA Auditing 功能。

代码示例:

@Configuration
@EnableJpaAuditing
public class JpaConfig {
}

通过上述代码,我们已经配置好了 JPA Auditing。

第三步:测试

现在我们已经配置好了默认时间和日期的设置,接下来我们可以创建一个实体类,看一下时间戳是否正确设置。

代码示例:

@Data
@Entity
@Table(name = "books")
public class Book extends BaseEntity {
    @NotBlank(message = "Title is mandatory.")
    private String title;

    @NotBlank(message = "Author is mandatory.")
    private String author;
}

在上述代码中,我们创建了一个 Book 类,并继承了 BaseEntity,从而获得了 createdOn 和 updatedOn 属性。我们可以使用 Spring Data JPA 来保存这个类的对象。

代码示例:

@RunWith(SpringRunner.class)
@SpringBootTest
public class BookRepositoryTest {
    @Autowired
    private BookRepository bookRepository;

    @Test
    public void saveTest() {
        Book book = new Book();
        book.setTitle("Java编程思想");
        book.setAuthor("Bruce Eckel");

        bookRepository.save(book);

        assertNotNull(book.getId());
        assertNotNull(book.getCreatedOn());
        assertNotNull(book.getUpdatedOn());

        System.out.println(book.getId());
        System.out.println(book.getCreatedOn());
        System.out.println(book.getUpdatedOn());
    }
}

在上述代码中,我们创建了一个测试用例,添加了一个 Book 实例。然后我们使用 assertNotNull() 方法来确认 id、createdOn 和 updatedOn 属性是否被正确设置。我们可以看到,当我们运行测试用例时,控制台输出了正确的时间戳记录。

至此,我们已经完整地讲解了 Spring Data 定义默认时间与日期的实例,包括了在 Entity 类中定义默认时间和日期、配置 JPA Auditing 和测试三个步骤,并提供了两条示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Spring data 定义默认时间与日期的实例 - Python技术站

(0)
上一篇 2023年6月16日
下一篇 2023年6月16日

相关文章

  • 经常听朋友说什么J2EE,终于知道点什么是J2EE了,汗一个

    “经常听朋友说什么J2EE,终于知道点什么是J2EE了,汗一个”的完整攻略 1. J2EE是什么? J2EE是Java 2 Enterprise Edition的简称,是Sun Microsystems在1999年发布的Java企业级开发规范。它的主要目的是为企业级应用程序提供通用的开发、部署和运行的平台。J2EE包括许多组件和API,例如:Servlet、…

    Java 2023年6月15日
    00
  • 一篇文章带你了解Java Spring基础与IOC

    一篇文章带你了解Java Spring基础与IOC 什么是Java Spring? Java Spring是一个轻量级的开源Java框架,它被广泛地应用于企业级Java应用开发中。它提供了一系列的工具和框架来帮助开发者构建易于维护和易于扩展的Web应用或企业应用。 Java Spring的核心特点包括: 依赖注入(DI)和控制反转(IoC)模式 面向切面编程…

    Java 2023年5月19日
    00
  • Java线程通信之wait-notify通信方式详解

    针对题目“Java线程通信之wait-notify通信方式详解”的完整攻略,以下是详细讲解。 标题 在文章中,应该清晰地使用标题来分隔内容,以便读者可以快速浏览和导航整篇文章。 介绍 在这个部分,我们将简要介绍Java中的线程通信和wait-notify通信方式。线程通信是指多个线程之间的协作和通信,为了互相通信和协调,线程需要一些机制,而wait-noti…

    Java 2023年5月19日
    00
  • JAVA 对象创建与对象克隆

    JAVA 对象创建与对象克隆 在 Java 中,对象创建与对象克隆是非常重要的知识点。 对象创建 Java 中的对象常见的有以下几种创建方式: 使用 new 关键字 使用 new 关键字创建对象是最常见的一种方式,通过这种方式创建出来的对象是一个新的对象实例,具有独立的地址空间。例子如下: public class Person { private Stri…

    Java 2023年5月26日
    00
  • 详解Springboot Oauth2 Server搭建Oauth2认证服务

    详解SpringBoot Oauth2 Server搭建Oauth2认证服务 1. 概述 OAuth,全称是“开放授权”,是一种用于授权的开放标准。在Web应用中,OAuth用于授权用户第三方应用访问资源的操作,比如在不需要输入用户名和密码的情况下授权第三方应用获取用户的个人信息。OAuth提供了一个安全的、开放的方式实现对用户的授权。 SpringBoot…

    Java 2023年5月20日
    00
  • 基于SpringBoot开机启动与@Order注解

    基于Spring Boot开机启动与@Order注解 在Spring Boot应用程序中,我们可以使用@Order注解来指定Bean的加载顺序。此外,我们还可以使用Spring Boot的开机启动功能,在应用程序启动时自动执行一些任务。本文将介绍如何使用@Order注解和开机启动功能。 @Order注解 @Order注解是Spring框架提供的一个注解,用于…

    Java 2023年5月15日
    00
  • Java将Exception信息转为String字符串的方法

    Java 中将 Exception 信息转为 String 字符串的方法有多种。下面我们介绍两种主要方法。 方法1:使用 StringWriter 和 PrintWriter try { // 可能出现异常的代码 } catch (Exception e) { StringWriter sw = new StringWriter(); PrintWriter…

    Java 2023年5月27日
    00
  • Servlet连接数据库实现用户登录的实现示例

    下面我详细讲解一下“Servlet连接数据库实现用户登录的实现示例”的完整攻略。 什么是Servlet连接数据库 Servlet连接数据库,指的是在Java Servlet中,通过使用各种数据库的API接口,连接对应的数据库来实现数据的增、删、改、查操作。对于实现用户登录功能来说,数据库中需要储存用户的账号和密码,以供用户在登录时进行认证。 实现步骤 第一步…

    Java 2023年6月16日
    00
合作推广
合作推广
分享本页
返回顶部