我希望我的实体有一个修改时间戳,无论何时它被更新。mysql使用以下定义支持这一点:
@Entity
public class MyTable {
    @Column(columnDefinition = "TIMESTAMP default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP")
    private LocalDateTime thetime;
}问题:在我的JUnit测试中,我想使用嵌入式内存中的H2数据库。H2不支持on update CURRENT_TIMESTAMP。
问:我如何保持列定义(因为除了自动化测试之外,我将在所有情况下运行mysql )?如何在我的h2测试中解决这个问题呢?
发布于 2018-09-11 19:21:19
H2的官方声明是它不受支持,解决方法是创建一个触发器。你可以在这里读到这个,https://github.com/commandos59/h2database/issues/491
--不管你在"columnDefinition“中放了什么,它都是特定于提供者的.,而且由于您已经用这个特定的列定义映射了您的实体,所以您不会给自己留下太多的空间。
有几件事你可以做。其中一些是黑客。
@PrePersist @PreUpdate侦听器https://stackoverflow.com/questions/47769856
复制相似问题