2011-05-02 78 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")