GIL-запрос Grails для нулевой ассоциации hasOne завершается неудачно

Я использую Grails 2.2.4 (такое же поведение в Grails 2.3.11) и имею класс домена A, который ссылается на класс домена B

class A {
    static hasOne = [b: B]

    static constraints = { b nullable: true }
}

class B {
    static belongsTo = [a: A]
}

Я пытаюсь найти все экземпляры A, которые имеют B.

A.findAllByBIsNotNull()*.b

возвращает список Bs и нулей:

[null, null, b1, b2, null, ...]

Как так?

То же самое происходит, если я использую

A.withCriteria {
    isNotNull 'b'
}*.b

Что я делаю не так?

ОБНОВИТЬ:

Я понял, что проблема из-заhasOne, Если вместоstatic hasOne = [b: B], естьB b, оно работает. Первый перемещает внешний ключ в таблицу B, второй создает отношение внешнего ключа в таблице A. Так почему запрос не работает в первом случае и как я могу запросить всеAс, не имеяB когда внешний ключ находится внутри B?

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

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