0

次のようなテーブルがあるとします。

object Leagues : IntIdTable() {
   val name = varchar("name", 50).uniqueIndex()
}
object Matches: IntIdTable() {
   val game = reference("game", Games)
}
object Users: IntIdTable() {
   val name = varchar("name", 50).uniqueIndex()
}
object Bets: IntIdTable() {
   val match = reference("match", Matches)
   val user = reference("user", Users)
}

Daos は次の行にあります。

class Bet(id: EntityID<Int>) : IntEntity(id) {
   companion object : IntEntityClass<Bet>(Bets)

   var match by Bets.match
   var user by Bets.user
}

「プレーヤー X がリーグ Y で行ったすべての賭けを私に与える」ようにクエリできるように、dao または Bets クラスのクエリを作成するにはどうすればよいですか。Bet.find { (user eq X) and (/* what here to get the leagues table ? */) }

4

1 に答える 1

1
val bets = Bet.wrapRows(
    Bets.innerJoin(Matches).innerJoin(Leagues).select {
        Bets.user eq X.id and (Leagues.name eq "Y"  
    }
).toList()
于 2018-05-04T06:49:49.867 に答える