我有一个 DBFlow v3/4 的问题,我的触发器正在读取一个 SQLite 短语作为字符串而不是核心 SQLite 语法,并将其插入到我之后的调整时间戳的位置。
这种方法在 DBFlow v2 中运行良好,尽管旧库方法的“更新”语法略有不同。
public static CompletedTrigger createdTimestampTrigger(Class modelClass) {
String sqlTimeInMSecs = "CAST(strftime('%s','now') AS INTEGER * 1000)";
Condition createdAt = Condition.column(NameAlias.builder("createdAt").build()).eq(sqlTimeInMSecs);
Condition updatedAt = Condition.column(NameAlias.builder("updatedAt").build()).eq(sqlTimeInMSecs);
return Trigger.create("CreatedAtTriggerOn" + modelClass.getSimpleName())
.after().insert(modelClass).begin(new Update<>(modelClass)
.set(createdAt, updatedAt)
.where(Condition.column(NameAlias.builder("createdAt").build()).isNull()));
}
我的问题本质上是如何构建触发器以使用该sqlTimeInMSecs
短语?这是我使用上述触发器插入时发生的情况......