在 ORMLite 的列中创建

Created at column for ORMLite

可以使用 version 注释在 ORMLite 中创建一个 'modified at' 列,如 http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_2.html#index-time-row-last-modified.

中所述

是否可以定义一个 'created at' 列,该列自动填充当前时间戳但此后不修改?

Is it possible to define a 'created at' column, which is automatically populated with the current timestamp but unmodified thereafter?

可以,但这是针对每个数据库的操作,因此解决方案取决于您使用的数据库类型。具体请参阅有关 Sqlite 的答案:How to have an automatic timestamp in SQLite?

尽管我不确定该字段的 type,但以下内容可能有效。它可能必须是 Sql java.sql.Timestamp 或其他东西:

@DatabaseFile(columnDefinition = "DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL")
private Date createDate;

有关详细信息,请参阅 Sql 网站的 documentation on date-time functions

这适用于 SQLite:

@DatabaseField(dataType = DataType.DATE_STRING, columnDefinition = "DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL", readOnly = true, canBeNull = false)
private Date created_at;

正如所讨论的 ,只读是必需的,这样 ORMLite 就不会尝试插入带有空时间戳的行。