Jetbrains Exposed サブクエリの使い方

Jetbrains Exposed サブクエリの使い方

Jetbrains Exposed のサブクエリの使い方まとめです。

サンプル

val starWarsFilmsQuery = StarWarsFilms.slice(
    StarWarsFilms.sequelId
    StarWarsFilms.director
)
    .selectAll()
    .alias("t")

val movieQuery = Movies.join(starWarsFilmsQuery, JoinType.INNER, additionalConstraint = {
                Movies.id eq starWarsFilmsQuery[StarWarsFilms.sequelId]
})
    .slice(
        Movies.id
        starWarsFilmsQuery[StarWarsFilms.sequelId]
        starWarsFilmsQuery[StarWarsFilms.director]
    )
    .select { starWarsFilmsQuery[StarWarsFilms.director] eq "George Walton Lucas" }

Point

サブクエリ部分のQueryのaliasを取得してメインのクエリで使用します。
メインのクエリ内でサブクエリのカラムを参照する場合、 starWarsFilmsQuery[StarWarsFilms.sequelId] のようにaliasであることを明示する必要があります。

プログラミングカテゴリの最新記事