iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
1

上次談到了一對多的關聯做法,今天我們來談談多對多關聯的做法。

多對多關聯

要處理多對多關聯,我們要加上一張關聯表:

object CitiesUsers : Table() {
    val city = reference("city", Cities)
    val user = reference("user", Users)
}

然後,要讓 可以透過這張表存取關聯,我們要加上 via

class City(id: EntityID<Int>) : IntEntity(id) {
    companion object : IntEntityClass<City>(Cities)

    var name by Cities.name
    val users by User via CitiesUsers
}

class User(id: EntityID<Int>) : IntEntity(id) {
    companion object : IntEntityClass<User>(Users)

    var name by Users.name
    var city by City rvia CitiesUsers
}

這樣,我們就可以像之前一樣,透過 DAO 的關聯存取相關物件了!


上一篇
[Day 19] 談談 n+1 問題和 eager loading
下一篇
[Day 21] 談 exposed DAO 的 Optional reference
系列文
最好用的非同步網頁框架!開始用 Ktor 寫 Kotlin Server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言