公开版本:0.28.1
Kotlin 版本:1.5.0
数据库:PostgreSQL 9.4
您好,我是 Exposed ORM Framework 的新手。 我需要用同一个表中的另一个列值更新一个表列值,这两个列类型是日期时间。 在 PostgreSQL 上会是这样的:
update order_details set production_date = current_timestamp - registry_date
如何在 Exposed ORM 上执行此操作? 这是我的实体:
object OrderDetails : Table (name = "detalle_orden") {
val id = integer("id").autoIncrement("detalle_orden_id_seq")
val sellDetail = integer("detalle_venta").references(SellDetails.id)
val order = integer("orden")
val registryDate = datetime("fecha_registro")
val registryHour = varchar("hora_registro", 30).nullable()
val productionDate = datetime("fecha_produccion").nullable()
val productionHour = varchar("hora_produccion", 30).nullable()
val finishedDate = datetime("fecha_terminado").nullable()
val finishedHour = varchar("hora_terminado", 30).nullable()
val deliveryDate = datetime("fecha_entregado").nullable()
val deliveryHour = varchar("hora_entregado",30).nullable()
val observations = varchar("observaciones", 500)
override val primaryKey = PrimaryKey(id, name = "detalle_orden_pkey")
}
最佳答案
作为Tapac said in comments ,这个用例在 wiki 中:https://github.com/JetBrains/Exposed/wiki/DSL#update
OrderDetails.update({ OrderDetails.id eq 8 }) {
with(SqlExpressionBuilder) {
it.update(OrderDetails.productionDate, OrderDetails.registryDate + OffsetDateTime.now())
// or
it[OrderDetails.productionDate] = OrderDetails.registryDate + OffsetDateTime.now())
}
}
关于kotlin - 使用另一个列值 [Exposed Kotlin] 更新表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69302486/