проблемы с hasMany и слева присоединяется:Grails hasMany покинул присоединиться
класса А {статического hasMany = [Ь: B]} класса B {ключ String, значение Строки} Это объединение создает таблицу отображения AB.
Что я хочу сделать, это отсортировать все объекты A по значению в B, где key = 'someKey'. Если я использую HQL внутреннее соединение
from A a inner join a.b b on b.key = 'someKey' order by b.value
Я получаю подмножество, которое b.value = «someKey». Отлично. Итак, я думал, что все, что мне нужно было сделать, - это изменить внутреннее соединение на левое соединение и получить полный список A, некоторые с b.value = 'someKey', остальные с b.value = null:
from A a left join a.b b on b.key = 'someKey' order by b.value
Однако, когда я использую левое соединение, SQL показывает левое соединение между A-> AB и другое левое соединение из AB-> B. Это не то, что я хочу, что я действительно хочу, чтобы поддерживать внутреннее соединение с AB-> B, с SQL, как:
from A a left join AB ab
inner join B b on ab.b_id = b.id and b.value = 'someKey'
on a.id = ab.a_id
Как я могу это сделать? Я чувствую, что упускаю что-то очень очевидное.