上次談到了一對多的關聯做法,今天我們來談談多對多關聯的做法。
要處理多對多關聯,我們要加上一張關聯表:
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 的關聯存取相關物件了!