java在数据库中存储jodatime日期时间
我的应用程序已经使用Joda time进行日期处理,并计划在不久的将来升级到jsr 310
现在我需要使用JPA2和hibernate在数据库中存储非常准确的时间戳,但是java.util.Date
没有存储毫秒值
我找到了UserType,并像这样配置了我的entitybean
@Column( name = "TRANSACTION_TIME" )
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime transactionTime;
但它仍然不存储毫秒
我通过了这个2010-11-02 12:02:54.945
,但当我检索到它时,它是2010-11-02 12:02:54.000
我还需要做些什么来存储毫秒,可能还有时区
更新 我刚刚进行了检查,毫秒数实际上进入了数据库,但Hibernate没有将其包含在返回的结果中。同一个格式化程序打印了这两个结果,所以不会出现格式化问题
# 1 楼答案
Oracle日期数据类型不存储小数秒。如前所述,您需要使用时间戳或数字列。见:http://knol.google.com/k/oracle-date-and-time-data-types
# 2 楼答案
这可能并不完全是您想要的,但您可以将时间存储为数字(=自历元起的毫秒),而不是日期时间字段