Consider the following usages of the Grails/GORM dynamic finder method findAllBy*:
def foo1 = Foo.findAllByYear(yyyy)
def foo2 = Foo.findAllByMonth(mm)
def foo3 = Foo.findAllByDay(dd)
def foo4 = Foo.findAllByYearAndMonth(yyyy, mm)
def foo5 = Foo.findAllByYearAndDay(yyyy, dd)
def foo6 = Foo.findAllByYearAndMonthAndDay(yyyy, mm, dd)
println "# foo1=${foo1.size()} foo2=${foo2.size()} foo3=${foo3.size()}"
println "# foo4=${foo4.size()} foo5=${foo5.size()} foo6=${foo6.size()}"
The first five of these dynamic finder usages works as expected.
However, the sixth one fails with an InvalidPropertyException ("No property found for name [yearAndMonth] for class [class foo]").
Question:
Why doesn't the sixth one work? Isn't findAllBy* able to handle more than two conditions? Solution/work-around?