2015-09-29 35 views
0

我在我的項目中使用EclipseLink 2.6.0以及MySQL 5.6.19EclipseLink DDL用分數秒創建MySql DATETIME

由於mysql 5.6.4支持字段類型DATETIME(6),允許在其值中存儲一個精度爲毫秒的日期。另外EclipseLink 2.6.0表示它支持這個功能。


我創建從我的實體的數據庫。我無法強制它創造一個合適的領域。在日誌中,數據庫的創建過程中我經常看到:

CREATE TABLE MY_TABLE (..., DATE_FIELD DATETIME ...) 

時,很明顯,我要的是:

CREATE TABLE MY_TABLE (..., DATE_FIELD DATETIME(6), ...) 

我試着用這兩個,簡單註釋版本:

private java.util.Date date1; 

@Temporal(value = TemporalType.TIMESTAMP) 
private java.util.Date date2; 

但結果總是一樣的。那麼Eclipselink如何支持這一點?如何確定適當的字段類型?

+1

你看到/嘗試使用@Column(columnDefinition =「DATETIME(6) 「)? – Chris

+0

好吧..按預期工作。我知道註釋,我不知道爲什麼我沒有考慮它:-)謝謝。 – Atais

+2

使用'columnDefinition'斷開可移植性並始終是最糟糕的方法 - 您的**實際**解決方案**應該**'@Column(length = 6)' – specializt

回答

0

specializt感謝您的提示,便於溶液:

@Column(length=6) 
private Date myTime; 

作品也與YodaTime轉換器(description

@Column(length=6) 
@Converter(name = "dateTimeConverter", converterClass = pl.ds.eemediation.storage.entities.converters.JodaDateTimeConverter.class) 
@Convert("dateTimeConverter") 
private DateTime date;