AFAIK, you cannot use dynamic crawlers if you have more than two predicates. Use the criteria query instead:
def results = Example.withCriteria { eq('a', 'some-a') eq('b', 'some-b') eq('c', 'some-c') }
Update
By default, predicates are concatenated using AND if you want to use OR instead:
def results = Example.withCriteria { or { eq('a', 'some-a') eq('b', 'some-b') eq('c', 'some-c') } }
Dónal source share