borinquenkid commented on code in PR #16696:
URL: https://github.com/apache/grails-core/pull/16696#discussion_r4350980769


##########
grails-data-hibernate7/core/src/test/groovy/grails/orm/HibernateCriteriaBuilderDirectSpec.groovy:
##########
@@ -389,6 +390,81 @@ class HibernateCriteriaBuilderDirectSpec extends 
HibernateGormDatastoreSpec {
         cleanup:
         PredicateGenerator.clearCustomCriterionHandlers()
     }
+
+    void "a contextual criterion handler resolves an association path to the 
join GORM created for it"() {
+        given: "a parent with two children, and a handler that resolves its 
criterion's path through the context"
+        var parent = CriteriaTestEntity.findByName('A')
+        parent.addToChildren(new CriteriaTestChild(name: 'Kid'))
+        parent.addToChildren(new CriteriaTestChild(name: 'Other')).save(flush: 
true)
+        PredicateGenerator.registerCriterionHandler(CriteriaTestPathLike, { 
query, root, cb, criterion, context ->
+            def c = criterion as CriteriaTestPathLike
+            cb.like(context.getFullyQualifiedPath(c.property) as 
Expression<String>, c.value as String)
+        } as PredicateGenerator.ContextualCriterionHandler)
+
+        when: "a GORM criterion and the custom criterion restrict the same 
association"
+        List<CriteriaTestEntity> both = new 
DetachedCriteria(CriteriaTestEntity).build {

Review Comment:
   Added in b39597e052: the same two queries with the custom criterion before 
the association block, asserting `['A']` and the empty list.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to