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

关于详解 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日

相关文章

  • Java方法的返回值及注意事项小结

    当我们在编写Java程序时,有时需要从方法中获取数据。在许多情况下,我们希望方法能够返回一个值,这就是Java方法的返回值。在本文中,将介绍Java方法的返回值以及注意事项。 什么是Java方法的返回值? Java方法的返回值是指当方法被调用时,此方法所返回的数据。方法的返回值用于与另一个方法或代码交互。一般情况下,Java方法返回值可以是任何基本数据类型(…

    Java 2023年5月26日
    00
  • java与php的区别浅析

    Java与PHP的区别浅析 Java和PHP都是常见的编程语言,它们可以用于开发Web应用程序、桌面应用程序、移动应用程序等。但是Java和PHP在许多方面都有不同的使用场景和不同的特点。下面是Java与PHP的区别浅析。 1. 编译方式 Java是一种编译型语言,它的代码是通过JVM(Java Virtual Machine)进行编译和执行的。Java代码…

    Java 2023年6月15日
    00
  • 新手初学Java基础

    新手初学Java 基础攻略 前言 Java 作为一门广泛应用的编程语言,其庞大、复杂的体系往往令初学者感到无从下手。在这篇攻略中,我将给予你一些学习Java基础的建议,帮助你更快、更轻松地掌握这门技艺。 学习 Java 基础的前提要求 掌握计算机基础知识,包括数据结构和算法、操作系统、网络通信等; 掌握一门编程语言的基础语法,例如C或Python等; 熟悉常…

    Java 2023年5月19日
    00
  • 深入Java对象的地址的使用分析

    让我们来详细讲解一下深入Java对象的地址的使用分析的完整攻略。 概述 Java中的对象占用内存空间,对象的地址是用一个指针来表示的。在Java代码中,我们可以使用对象的引用来访问该对象,但在底层,JVM是通过引用所对应的对象地址来操作该对象的。因此,深入Java对象的地址的使用分析对于提高Java程序的性能和调试程序都是非常有帮助的。 获取对象地址 获取对…

    Java 2023年5月26日
    00
  • 详解SpringBoot之集成Spring AOP

    下面是详解SpringBoot之集成SpringAOP的完整攻略: 什么是Spring AOP Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要模块。它实现了基于代理的AOP,并且与IOC容器无缝集成,提供了便捷的配置方式。 面向切面编程就是将通用的横切关注点(如日志、安全、事务等)从…

    Java 2023年5月15日
    00
  • Idea中tomcat启动源码调试进入到tomcat内部进行调试的方法

    Idea中tomcat启动源码调试进入到tomcat内部进行调试的方法可以通过以下步骤实现: 在Idea中配置tomcat启动参数 首先需要在 Ieda 中配置 tomcat 的启动参数,具体方法为: 在Idea侧边栏中找到「Run/Debug Configuration」,点击「+」按钮,选择「Tomcat Server」,然后在「Server」选项中选择…

    Java 2023年5月19日
    00
  • extjs 学习笔记 四 带分页的grid

    下面是针对“EXTJS 学习笔记 四 —— 带分页的 Grid”这篇文章的详细攻略。 1. 文章概览 该篇文章主要是介绍如何使用 EXTJS 构建具有分页功能的 Grid 表格。其中,主要介绍以下内容: 引入必要的资源文件 创建分页工具栏 构建 Grid 表格 设置 Grid 表格分页参数 2. 引入必要的资源文件 在使用 EXTJS 构建 Grid 表格时…

    Java 2023年6月16日
    00
  • java8传函数方法图文详解

    Java 8引入了函数式编程的特性,其中一个新的功能就是传递函数方法(Method Reference)。传递函数方法可以简化代码结构,提高代码可读性和可维护性,从而使代码更加优雅。 传递函数方法概述 函数式编程包括很多特性,其中一项特性是函数作为一等公民,即函数可以像对象一样使用。所谓传递函数方法,就是将一个方法本身作为参数传递给另一个方法,目的是让另一个…

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