【发布时间】:2021-08-04 04:03:23
【问题描述】:
所以我正在使用 Kotlin Exposed DAO API。假设我的结构中有一个我在内部使用的 id 和另一个我将导出以混淆哪个记录是哪个记录,在我的数据库中仍然具有 from:to 关系。
所以我有我的实体:
UserEntity(id: EntityID<Int>) : IntEntity(id) {
companion object : IntEntityClass<UserEntity>(TransactionTable)
var externalId by UserTable.external_id
var name by UserTable.name
TransactionEntity(id: EntityID<Int>) : IntEntity(id) {
companion object : IntEntityClass<TransactionEntity>(TransactionTable)
var userId by TransactionTable.user_id
var value by TransactionTable.value
//relationships
var user by UserEntity referencedOn TransactionTable.user_id
还有我的交易表
object TransactionTable: IntIdTable("transaction_1"){
var user_id = integer("user_id").references(UserTable.external_id)
var value= double("value")
这里的问题是,即使我的 FK 引用 external_id,实体也会查找 UserEntity 的 ID,所以我会有一个 IllegalStateException 告诉我没有这样的用户,id = " my_extenal_id"...
我能否在不使用 DSL API 的情况下引用我的实体的关系以使用 FK 加入,甚至明确说明我希望它用于加入的字段?
我知道我可以使用 DSL API 解决这个问题,但我想继续使用我的 DAO API...
谢谢。
【问题讨论】:
标签: kotlin kotlin-exposed