Я использую библиотеку Exposed в проекте Kotlin. В моем объявлении таблицы у меня есть такой столбец:
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
}