我在使用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