[Day 21] 談 exposed DAO 的 Optional reference

Optional reference

有時我們物件之間的關係是可有可無的,這時候我們要用 Optional reference 處理

首先資料上面是 nullable 的:

object Users : IntIdTable() {
    val name = varchar("name", 50).index()
    val city = reference("city", Cities).nullable()
}

然後是 DAO class 的部分:

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

    var name by Users.name
    var city by City optionalReferencedOn Users.city
}

這樣,user 就不一定要有 city 了