在查看Joda-Time Hibernate user guide时,似乎没有对SQL DATE类型的未来支持。由于TIMESTAMP被指定在1970年1月1日开始 - 1970年之前日期的唯一安全传输似乎是带有PersistentLocalTimeAsString的VARCHAR(如果有人希望将自己限制在Joda Hibernate库中)。
作为使用DATE(并且看到Joda Hibernate不是)的人,我想知道是否有一些原因我应该切换到VARCHAR和PersistentLocalTimeAsString。 IE浏览器。是什么促使人们决定弃用PersistentYearMonthDay?
答案 0 :(得分:1)
long someTimeBefore1970 = -83688769L;
Timestamp ts = new Timestamp(someTimeBefore1970);
System.out.println(ts);
0设置为1970年1月1日,但这并不意味着不支持之前的日期。
答案 1 :(得分:1)
它不是在1970年开始,它是一个零点,但它可能是负面的。不推荐使用PersistentYearMonthDay
的原因是YearMonthDay
的弃用率。被动机为“使用LocalDate,它具有更好的内部实现,并且自1.3以来一直可用”
另外,这很奇怪,但PersistentLocalDate的the source code有DATE
sql类型,而用户指南说TIMESTAMP
,请尝试一下,也许只是用户指南中的拼写错误。< / p>