2011-05-02 75 views
2

有沒有辦法告訴Hibernate的java.util.Date應該持久保持長?我需要這個解決MySQL中缺少的毫秒分辨率。休眠到堅持日期只要

你能想到這種方法的缺點嗎?

回答

1

你可以用虛擬屬性來做到這一點。

因此你映射一個long,併爲Date對象添加一個get/set。 setter設置long值,getter用long創建一個新的Date。

而且我看不出有任何的缺點,只可能是你想要在你的應用程序使用日期(這就是爲什麼我認爲虛擬屬性的解決方案是差強人意)

+0

這種方法對於CriteriaQuery並不能很好地發揮作用,CriteriaQuery似乎忽略了getter/setter類型並僅綁定到long屬性。 – 2017-11-06 23:02:36

2

可以使該字段本身long。或使用自定義UserType。在執行UserType之後,在該字段中配置@Type(type = "com.yourcompany.YourUserType")