在我休眠-4的實體,我使用的是推薦jadira usertypes映射喬達時間DateTime屬性:MySQL的DATETIME精度(喬達時間,休眠,org.jadira.usertype和hbm2ddl)
@Entity
@Table(name="timing")
public class TimingEntity {
...
@Basic(optional=false)
@Column(name="moment")
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
public DateTime getMoment() {
...
我數據庫是MySQL。與Hibernate屬性hbm2ddl.auto
設置爲create
價值,我有我的timing
表中生成以下列:
CREATE TABLE `timing` (
...
`moment` DATETIME NOT NULL,
...
)
生成CREATE TABLE
包含DATETIME列。 MySQL中的DATETIME只有幾秒精度,沒有小數部分。爲了啓用小數部分,高達微秒,MySQL 5.6.4和更高版本enablesDATETIME(precision)
列,例如DATETIME(3)
具有毫秒精度。
我的問題是 - 是否有方法來指定我的時間字段與hbm2ddl生成的精度?至少,這是jadira usertypes還是java.sql或jdbc驅動程序的問題?
P.S.當我手動修改數據庫表以獲得精確的列精度(例如DATETIME(3)
)時,一切正常 - joda DateTimes以毫秒級的精度從數據庫中讀取和讀取。
它做到了,謝謝! 'columnDefinition'確實起作用,'精確'沒有。但缺點是我開始依賴於我的代碼中的MySQL。 –