关于详解 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技术站