Java 8提供java.time API。Grails將Java 8域對象的LocalDateTime映射到Gorm
我使用的是Grails應用程序,我想用java.time我的領域類的屬性。
我需要映射爲實例LocalDateTime對GORM的DATE/DATETIME這是基於Hibernate的頂部。
我怎樣才能堅持我的映射?
我看到一個解決方案,我可以使用jadira,建立靜態映射我attributs。
但是還有另一種方法嗎?
請任何幫助表示讚賞。
Java 8提供java.time API。Grails將Java 8域對象的LocalDateTime映射到Gorm
我使用的是Grails應用程序,我想用java.time我的領域類的屬性。
我需要映射爲實例LocalDateTime對GORM的DATE/DATETIME這是基於Hibernate的頂部。
我怎樣才能堅持我的映射?
我看到一個解決方案,我可以使用jadira,建立靜態映射我attributs。
但是還有另一種方法嗎?
請任何幫助表示讚賞。
可以使用user type
映射。見the docs。這應該消除明確映射所有實例的需要。
要走得更遠,我會採取grails-joda-time
插件源並嘗試製作jave.time
版本。甚至嘗試製作(並提交拉取請求)版本,以支持joda-time
和java.time
。
我沒有用過格姆,但如果我們只講休眠(我想這應該是適用的),你就可以遵循兩個路徑。
一,如果你正在使用或如果你能夠升級到休眠5,比你可以包括使用Java8特定數據類型的hibernate-java8
支持,如任何JSR 310 的域模型中的日期/時間類型。
否則,你將不得不爲解釋here編寫自己的類型,例如使用像
@Type(type="your.custom.LocalDateTimeUserType")
private LocalDateTime date;
最後,gorm
正在實施JPA
規範,可以實現converter
我在grails 3.0.10上使用groovy,所以我不確定我是否可以將Hibernate更新到5,或者我錯了? – Ectoras
對於第二種建議我的方法,它是通過Hibernate將域對象與sql對象進行實際映射,而不是通過Gorm。我將嘗試查看它是否適用 – Ectoras
您可以在Grails 3.0.10上使用Hibernate 5。 你必須升級到GORM 5,然後選擇Hibernate 5來實現。有關更多信息,請參閱http://grails.github.io/grails-data-mapping/5.0.x/hibernate/manual/index.html。 –