私は、データベースのテーブルに対して、次の例を作成するドメイン定義があります。テーブルBに存在しないテーブルAの行を、inListクロージャを使用せずにGORMで取得する方法はありますか?
私は次のクエリを実行したい:には存在しない表Aに関連するすべてのドメインオブジェクトを取得表B
私は次のようにinList
クロージャを使用していました:
List<DMiembro> m = DMiembro.list()
List<DUsuario> usuarios = DUsuario.createCriteria().list(params) {
if (m) {
not {
m*.usuario.id.collate(1000).each { def lista ->
or {
inList("id", lista)
}
}
}
}
eq("enabled", true)
order("nombre", "asc")
} as List<DUsuario>
これは問題なく動作します。しかし、DMiembro
のデータは大きくなっています。今私は、クエリのサイズに関連するデータベースエラーを取得しています。クエリのパラメータ数が大きすぎるため論理的です
したがって、DMiembro
に存在しないオブジェクトDusuario
を収集するためのクエリを作成する別の方法はありますか?
私はtableB.idがNULLのどこの制約で右結合を使用できるはずだと思います。 – elixir
JoinType.RIGHT_OUTER_JOINを使用しようとしました。ただし、Oracle 12cを使用しており、その構文は許可されていません。私は、Oracle 9iとOracle 10gのdiaclectの使用をsuggetingメッセージを得た –