File tree Expand file tree Collapse file tree 1 file changed +11
-6
lines changed
src/java/org/codehaus/groovy/grails/orm/hibernate/cfg Expand file tree Collapse file tree 1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change 1515 */
1616package org.codehaus.groovy.grails.orm.hibernate.cfg
1717
18+ import java.lang.reflect.Modifier
1819import org.codehaus.groovy.grails.orm.hibernate.metaclass.*
1920import org.codehaus.groovy.grails.plugins.orm.hibernate.HibernatePluginSupport
2021import org.hibernate.criterion.CriteriaSpecification
@@ -193,14 +194,18 @@ class NamedCriteriaProxy {
193194 def nextInChain = domainClass. metaClass. getMetaProperty(methodName). getProperty(domainClass)
194195 nextInChain. previousInChain = this
195196 return nextInChain(args)
196- } else if (domainClass. metaClass. getMetaProperty(methodName) &&
197- ! Collection . isAssignableFrom(domainClass. metaClass. getMetaProperty(methodName). type)) {
198- def nestedCriteria = domainClass. metaClass. getMetaProperty(methodName). getProperty(domainClass). criteriaClosure. clone()
199- nestedCriteria. delegate = queryBuilder
200- nestedCriteria(* args)
201197 } else {
202- queryBuilder. " ${ methodName} " (* args)
198+ def metaProperty = domainClass. metaClass. getMetaProperty(methodName)
199+ if (metaProperty && Modifier . isStatic(metaProperty. modifiers)) {
200+ def staticProperty = metaProperty. getProperty(domainClass)
201+ if (staticProperty instanceof NamedCriteriaProxy ) {
202+ def nestedCriteria = staticProperty. criteriaClosure. clone()
203+ nestedCriteria. delegate = queryBuilder
204+ return nestedCriteria(* args)
205+ }
206+ }
203207 }
208+ queryBuilder. " ${ methodName} " (* args)
204209 }
205210
206211 private getPreparedCriteriaClosure (additionalCriteriaClosure = null ) {
You can’t perform that action at this time.
0 commit comments