1

我为我的专栏写作

class MyEntity {

    @Column(columnDefinition="DATETIME(6) DEFAULT CURRENT_TIMESTAMP")
    private LocalDateTime createdDate = LocalDateTime.now(ZoneOffset.UTC);

它在我用于自动化测试的情况下有效MySQL但失败了。H2

JPA是否可以使用可移植的默认日期时间服务器端?

4

1 回答 1

1

通过避免“测试数据库”H2来避免问题

我通常建议使用testcontainers而不是 H2 来测试您的代码,以避免纯粹由翻译引起的任何问题,

使用代理来翻译你的 SQL

如果由于某种原因您需要多 RDBMS 支持(可能不仅仅是 H2),您可以在生成模式或运行 JPA 原生 SQL 查询时挂钩 jOOQParsingConnectionDataSource两者之间,以确保(大多数)MySQL 特定的东西也适用于 H2。

我在 jOOQ 博客上写了一篇博文来解释这是如何工作的。

于 2021-04-14T10:23:03.610 回答