我在 Kotlin 项目中使用 Exposed 库。在我的表声明中,我有一个这样的列:
val updatedDate = datetime("updated_dt").clientDefault { DateTime.now() }
如果我默认替换 clientDefault 函数有什么不同,如下所示:
val updatedDate = datetime("updated_dt").default(DateTime.now())
我看过这两个函数的源代码,但还是不知道。
clientDefault
功能:
fun <T:Any> Column<T>.clientDefault(defaultValue: () -> T): Column<T> {
this.defaultValueFun = defaultValue
this.dbDefaultValue = null
return this
}
default
功能:
fun <T:Any> Column<T>.default(defaultValue: T): Column<T> {
this.dbDefaultValue = SqlExpressionBuilder.run {
asLiteral(defaultValue)
}
this.defaultValueFun = { defaultValue }
return this
}