Spring + javax.persistence.Query:管理从H2和PosgreSQL DB本机日期类型到OffsetDateTime的类型转换

时间:2018-10-16 09:57:26

标签: java postgresql

由于某种原因,我必须使用javax.persistence.Query来执行PostgreSQL(真实)/ H2(测试)数据库查询,其中我必须从数据库获取日期时间字段。在Java中,它是OffsetDateTime类型,带有columnDefinition="timestamp with time zone")

在测试中,此操作不起作用,因为getSingleResult()返回的org.h2.api.TimestampWithTimeZone不是OffsetDateTime。但是我认为在PostgreSQL中它必须返回另一种类型,它是PostgreSQL的本机。

那么,如何以一种优雅的方式管理这种转换呢?我必须使用Statement来进行JDBC查询吗?这似乎太低级了。还是将日期时间更改为java.util.Date更好?

1 个答案:

答案 0 :(得分:0)

我建议您使用此开源项目https://github.com/montrosesoftware/DbAssist/wiki。由于您的问题不清楚,所以这是我所建议的最好的方法。