我在使用MySql創建時間戳時遇到問題。根據here的建議,未使用@DatabaseField
定義中的特定DataType.TIME_STAMP
條目。MySQL創建時間戳的ORMLite問題
我現在@DatabaseField
看起來是這樣的:
@DatabaseField(format="yyyy-MM-dd HH:mm:ss", defaultValue="CURRENT_TIMESTAMP")
private Timestamp updatedAt;
表仍然得到錯誤創建:
Unable to create table because of [Problems parsing default date
string 'CURRENT_TIMESTAMP' using 'yyyy-MM-dd HH:mm:ss.SSSSSS']
所以它似乎忽略格式定義,沒有格式定義,我仍然得到這個錯誤:
Unable to create table because of [Problems parsing default date
string 'CURRENT_TIMESTAMP' using 'yyyy-MM-dd HH:mm:ss.SSSSSS']
我試過指定dataType,c掛到DATE_TIME
等。我還沒有找到一個組合(除了不使用時間戳,只是創建一個DATE_TIME
,它的工作原理,但不是與CURRENT_TIMESTAMP
)。
我真的陷入困境,因爲我過去手動更新了表,但現在數量在不斷增加,我希望使用ORMLite中的創建表選項完全自動化,而不必稍後手動混淆架構。
任何指針將非常歡迎如何得到這個工作。
有可能是一個消息安東尼問題在這裏問題是''CURRENT_TIMESTAMP''不能用作默認值,因爲它與轉換模式不匹配。不知怎的,我想我需要特殊情況。由於每種數據庫類型都有不同的表現,這將是一個痛苦。 – Gray
哇!感謝Grey的超快反應。我理解這個問題,對待它的一種方式是讓用戶弄清楚它?如果你把MySQL版本放到Postres中,表格創建自然會失敗。所以如果你看到我的意思,那麼這是一個類設計問題,而不是基礎設施問題。也許只是簡單地接受在DefaultValue字段中輸入的任何內容,僅適用於時間戳?用戶有責任讓它正確。那對你有用嗎? – Anthony
是的,這可能是正確的解決方案。 _perfect_解決方案應該在抽象數據庫類型上有某種Timestamp驗證器。 :-)我其實有點驚訝,它需要做字符串解析。我今天晚些時候會看。 – Gray