4

ClassAとClassBの2つの(実際には5つの)ドメインクラスがあり、両方で同じクエリを実行する必要があります

ClassA.where { a == b }.list()

ClassB.where { a == b }.list()

クラスごとにサービスを作成するのではなく、Classオブジェクトを渡してこれらのクエリを実行するサービスクラスを作成したいと思います。私はこの解決策を試しました

def clazz = grailsApplication.getDomainClass(domainClass)
clazz.where { a == b }.list()

しかし、DefaultGrailsDomainClassには「where」メソッドがないという例外があります。

これを行う他の方法はありますか?「ClassA.grailsClass.where{}」のようなもの

ありがとう

4

1 に答える 1

4

の戻り値getDomainClassGrailsDomainClass/DefaultGrailsDomainClassです。getClazzそのメソッドを呼び出して、ラップするクラスを取得します。

def clazz = grailsApplication.getDomainClass(domainClass).clazz
clazz.where { a == b }.list()
于 2012-07-27T15:33:04.907 に答える