Grails 2.x createCriteria 'or, 9; не работает для вложенных ассоциаций

Похоже, что в Grails 2.x, если у вас есть ассоциация классов домена, и вы пытаетесь запустить createCriteria, используяor на этом отношении + другой запрос,or игнорирует другой запрос и просто использует результаты вложенной ассоциации. Я понимаю, что это может немного сбить с толку, так что вот пример:

class Passenger {
    Long id
    Boolean isDriving
}

class Car {
    Long id
    Passenger passenger
    Boolean isMoving

    static constraints = {
        passenger nullable: true
    }
}

и тест:

class CarIntegrationTests {
    @Test
    void testCar() {
    Passenger passenger1 = new Passenger(isDriving: true)
    passenger1.save()

    Car car1 = new Car(passenger: passenger1, isMoving: false)
    Car car2 = new Car(isMoving: true)

    car1.save()
    car2.save()

        def queryResults = Car.createCriteria().list() {
            or {
                eq('isMoving', true)// This by itself works

                passenger {// And this by itself works
                    eq('isDriving', true)
                }
            }// But OR'd, it only returns the results of the nested part
        }

        assertEquals 2, queryResults.size() // Returns 1
    }
}

Этот же код работал в более старых версиях Grails, но, похоже, не работает сейчас - кто-нибудь знает хороший обходной путь для этого, кроме выполнения нескольких запросов?

Ответы на вопрос(1)

Ваш ответ на вопрос