Grails 将 Java 8 个域对象的 LocalDateTime 映射到 Gorm

Grails Mapping LocalDateTime of Java 8 domain objects to Gorm

Java 8 给出 java.time API.

我正在使用 grails 应用程序,我想将 java.time 用于我的域 类 的属性。

例如,我需要将 LocalDateTime 映射到基于 Hibernate 构建的 GORM 上的 DATE/DATETIME。

如何保存我的映射?

我看到一个解决方案,我可以使用 jadira,并为我的属性建立静态映射。

但是还有别的办法吗?

如有任何帮助,我们将不胜感激。

我没用过 gorm,但如果我们只说 hibernate(我想它应该适用),你就可以走两条路。

第一,如果您正在使用或能够升级到 hibernate 5,那么您可以包含 hibernate-java8

Support for using Java8 specific data-types such as any of the JSR 310 Date/Time types in domain model.

否则,您将不得不按照说明 here 编写您自己的类型并使用它,例如喜欢

@Type(type="your.custom.LocalDateTimeUserType")
private LocalDateTime date;

最后,gorm正在实现JPA规范,你可以实现一个

您可以使用 user type 映射。参见 the docs。这应该消除了单独显式映射所有实例的需要。

为了更进一步,我会使用 grails-joda-time 插件源并尝试制作 jave.time 版本。甚至尝试制作(并提交拉取请求)一个同时支持 joda-timejava.time.

的版本