2011-09-15 9 views
1

Addressというクラスがあり、ブール値フィールドはcloneです。 Grails list()メソッドを使用して、Addressクラスのインスタンスを表示しようとしています(clone = false)。私はこれを達成するためにfetchパラメータを使用することができますが、期待通りに動作しません。私が望むアドレスだけを返すのではなく、Addressクラスのすべてのインスタンスを返します。ここに私が持っているものは次のとおりです:フェッチパラメータを持つリスト

def list = { 
    params.max = Math.min(params.max ? params.int('max') : 10, 100) 
    params.fetch = [clone:false] 
    [addressInstanceList: Address.list(params), addressInstanceTotal: Address.count()] 
} 

私が本当に簡単なフェッチをしても、まだ期待どおりに動作しません。たとえば、AddressクラスのインスタンスをZipコード "90210"でフェッチしたいと指定した場合、これを書きましたが、それでもAddressクラスのすべてのインスタンスが返されます。

Address.list(fetch:[zip:"90210"]) 

私は間違っていますか? Domain.list()方法

答えて

6

fetchパラメータが応答をフィルタリングするか、単にいくつかの項目をフェッチするためではない、それは、ドメインクラスのプロパティが熱心に又は遅延し

すなわち(documentation for listから)ロードされているかどうかを指定するためのものである:

def results = Book.list(fetch:[authors:"eager"]) 

あなたは何をしているかを行うには、私はあなたのような、findAllWhereコールを使用することができます信じる:

Address.findAllWhere(clone:false, zip:'90210') 
+1

母、私は実際に(午前4時)の文書を読んだが、私はそれが「eager」の著者名であるのと同じように読んでいた!解明してくれてありがとう、それは今すべて意味がある。 – ubiquibacon

関連する問題