gpt4 book ai didi

java - 设置用@CreationTimestamp注释的字段的值

转载 作者:行者123 更新时间:2023-12-02 01:31:49 26 4
gpt4 key购买 nike

我有一个实体,其中有一个用 @CreationTimestamp 注释的字段:

@Entity
@Table(name = "foo")
class Foo {
...
@Column
@CreationTimestamp
private Instant createdAt;
}

现在我有集成测试,我需要创建一些具有不同 createdAt 时间戳记的条目。但是,当我将值设置为我需要的值并保存时,它会被虚拟机的创建时间戳覆盖:

Foo foo = new Foo();
foo.setCreatedAt(Instant.MIN);
foo = fooRepo.save(foo);
foo.getCreatedAt(); // equals to the creation time

如何在我的测试环境中插入此字段所需的值?

最佳答案

我认为不可能根据您的需要在集成测试中禁用此行为。

但是,您可以使用解决方法实现相同的目的,方法是在保存实体后设置创建日期,然后再次保存实体以保留新的所需创建时间。

这将起作用,因为 @CreationTimestamp 仅在第一次保存实体时才会被触发。

关于java - 设置用@CreationTimestamp注释的字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55919146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com