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

相关文章

  • Java可视化之实现文本的加密和解密

    Java可视化之实现文本的加密和解密 简介 本文主要介绍如何通过Java可视化界面实现文本的加密和解密功能。具体实现过程采用Java的Swing组件和AES加密算法。 环境 JDK 1.8或以上版本 Eclipse开发环境 实现步骤 步骤1 – 创建Java项目 首先在Eclipse中创建一个Java项目,用于实现加密和解密功能。可以根据自己的习惯和实际需求…

    Java 2023年5月26日
    00
  • Java shiro安全框架使用介绍

    下面我将为您详细讲解Java shiro安全框架的使用介绍。 一、什么是Java Shiro安全框架 Java Shiro是一款功能强大的安全框架,提供了认证、授权、加密、会话管理等功能,可以非常方便地帮助我们完成整个安全体系的搭建。 二、Java Shiro的主要概念 Java Shiro的核心是Subject、SecurityManager、Realm和…

    Java 2023年5月20日
    00
  • 使用Java打印数字组成的魔方阵及字符组成的钻石图形

    下面我详细讲解一下“使用Java打印数字组成的魔方阵及字符组成的钻石图形”的完整攻略。 打印数字组成的魔方阵 思路 魔方阵是由 $n^2$ 个数字组成的方阵,其中每一行、每一列、每一条对角线上的数字之和都相等。我们可以使用以下的算法来生成 $n \times n$ 的魔方阵: 将数字 1 放在第一行的中间列。 依次将后续的数字放入前一个数字的右上角(如果已经…

    Java 2023年5月26日
    00
  • java学生管理系统界面简单实现(全)

    下面是“java学生管理系统界面简单实现(全)”的完整攻略。 简介 “java学生管理系统界面简单实现(全)”是一篇教程,它详细介绍了如何使用Java语言实现一个学生信息管理系统。该教程包含的内容主要涉及Java Swing图形界面编程、MySQL数据库使用以及Java与MySQL之间的数据交互等方面。 步骤 下面是实现这个系统的主要步骤: 1. 创建项目并…

    Java 2023年5月19日
    00
  • Java MyBatis 多表查询详解

    首先我会先为大家讲解一下Java MyBatis多表查询的基础知识,然后再通过两个具体的实例进行详细说明。 什么是Java MyBatis Java MyBatis是一款优秀的开源数据持久层框架,它支持定制化SQL、存储过程和高级映射。MyBatis避免了几乎所有JDBC代码和手动设置参数以及获取结果集的工作。相对于传统的Hibernate等ORM框架,My…

    Java 2023年5月20日
    00
  • java按指定编码写入和读取文件内容的类分享

    下面我来详细讲解如何使用Java按指定编码写入和读取文件内容的类。 什么是编码? 在计算机中,所有的数据都是以二进制形式存储的,但是人类无法直接读懂所有的二进制数据。为了让计算机能够正确地识别和显示不同的文本,我们需要将文本数据按照一定的规则(即编码)转换为二进制数据存储。 常见的编码方式包括ASCII、Unicode、UTF-8等。每一种编码方式都有其特定…

    Java 2023年5月20日
    00
  • Java直接插入排序算法实现

    下面是“Java直接插入排序算法实现”的完整攻略。 算法简介 直接插入排序,也叫插值排序,是对于插入排序算法的一种变形。与通常的插入排序不同之处在于,它可以在O(n)的时间内完成前n个元素的排序。类似于整理扑克牌,抓出一张新牌插入手中的牌序中。遍历未排序的元素,将其插入到已排序的序列中的正确位置。 算法步骤 从第一个元素开始,该元素可以认为已经被排序 取出下…

    Java 2023年5月19日
    00
  • Java实现联系人管理系统

    Java实现联系人管理系统完整攻略 系统简介 联系人管理系统,是一个用于管理个人或组织内部联系人的工具。一般包含添加联系人、编辑联系人、删除联系人、查看联系人等功能。本文介绍如何使用Java语言实现一个简单的联系人管理系统。 开发环境 JDK 8 Eclipse 或者 IntelliJ IDEA Tomcat 7 MySQL 5.7 所需技术 Servlet…

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