-2

結果が必要なドメイン クラス (テーブル) と関係のないクラス (コントローラー) からカスタム クエリを実行するにはどうすればよいですか?

class something {
 //query select from anything 
}

class anything{
}

Users というドメイン クラスがあり、別のコンソールからアクセスしたいと考えています。以下を実行します。

def result = users.executeQuery( "select distinct a.id from users a" );

エラーが発生します:No such property: Users for class:something

何かをインポートする必要がありますか?

4

1 に答える 1

1
class something {
    def reallyObscureMethodBecauseYourquestionIsreallyNotClear() {
        def someResults = anything.where {
            whateverProperty == 'whatever condition'
        }.list()
        render(view:'someOtherView',model:[crazyunspecificModel:someResults])
    }     

}

class anything{
}

真剣に、質問の構成にもう少し力を入れることができたはずです。これは、私が立っているところからすると怠惰な質問です。

アップデート

これはおそらく、JVM に近いものを試す最初の試みですよね?

コントローラーが外部クラスとは異なるパッケージにある場合、クラスを使用する場合は、それをインポートする必要があります。

ユーザー クラス (ちなみに、規則では、クラスには大文字の名前を使用し、変数には大文字を使用しない名前を使用することをお勧めします) がパッケージ com.example.domain にある場合:

また、ドメイン クラスには単数形の名前を使用するようにしてください。users ではなく、User です。

また、なぜ SQL を使用したいのですか? Grails の利点の 1 つは、より高い抽象化レベルでクエリを指定できることです。

import com.example.domain.User

class AlienController {
      def list() {
         def result = User.executeQuery( "select distinct a.id from users a" )
      }
}
于 2013-06-03T11:25:51.093 に答える