findAllByNameLikeOrMailLike( 検索文字列1 , 検索文字列2 );こんな具合になります。OrでNameLikeとMailLikeをつないでいるわけですね。あわせて引数も変更されています。2つの検索条件をつないでいますので、それぞれに必要な引数をあわせて2つ用意する必要があるのです。(下にサンプルコードを掲載しておきます)
findAllByNameLikeOrMailLikeAndAgeLessThan( 検索文字列1 , 検索文字列2 , 20);こんな感じになるはずですが、これは使えません。OrとAndが混じっているからです。すべてOrか、すべてAndならば動きます。上記のような複雑な検索は、ダイナミックファインダーではなく、また別の方法を考える必要があるでしょう。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※nameまたはmailから検索 def find = { def fstr = params.fstr; def datas = null; def msg = null; if (fstr == null){ datas = SampleData.getAll(); msg = "全レコード一覧です。"; } else { datas = SampleData.findAllByNameLikeOrMailLike("%" + fstr + "%","%" + fstr + "%"); msg = "name & mail like '%" + fstr + "%' のレコード一覧です。"; } def arr = [ 'title':"Show All", 'msg':msg, 'datas':datas ]; arr; }
<< 前へ | 次へ >> |