gpt4 book ai didi

Kotlin ktor 暴露 DSL 插入引用

转载 作者:行者123 更新时间:2023-12-02 13:35:59 26 4
gpt4 key购买 nike

我正在开发一个带有 ktor 应用程序的 Kotlin,并且我使用暴露为 ORM。我有一个引用另一个表的表。这种关系是多对一的。前任:

object Users : IdTable<String>() {
override val id: Column<EntityID<String>> = varchar("user_id", 64).entityId().primaryKey()
val email = varchar("email", 128).uniqueIndex()
val firstName = varchar("first_name", 64)
val lastName = varchar("last_name", 64)
}

& 用户考勤表为 -
object UserAttendances : IntIdTable() {
val userId = reference("user_id", Users).index()
val checkInTime = date("check_in")
val checkOutTime = date("check_out")
}

现在,当我尝试插入出勤表时,我不确定如何将插入映射到用户。我尝试了以下 -
StaffAttendances.insert {
it[date] = DateTime.now()
it[checkInTime] = DateTime.now()
it[userId] = userId
}

这给出了所需类型为 EntityId<String> 的编译错误。但发现 String .关于如何插入引用的任何帮助。这可能是因为我将字符串作为带有 UUID 的 ID 列

最佳答案

userId必须采取EntityId<String> .因此,您应该将您的 userId 传递为 it[userId] = EntityId(userId, Users) .

为了避免这种情况,我使用普通的 Table而不是 IntIdTable并手动创建我的主键。这样我可以直接传递值而不用将它包装在 EntityId<> 中.

关于Kotlin ktor 暴露 DSL 插入引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57281338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com