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;
}
| << 前へ | 次へ >> |