Я использую Как присоединиться к таблицам в однонаправленном режиме «многие к одному»?.
Если у вас есть два класса:
class A {
@Id
public Long id;
}
class B {
@Id
public Long id;
@ManyToOne
@JoinColumn(name = "parent_id", referencedColumnName = "id")
public A parent;
}
B -> A - отношение многие к одному. Я понимаю, что могу добавить Коллекцию B к A, однако мне не нужна эта ассоциация.
Итак, мой фактический вопрос: существует ли способ HQL или Criteria для создания SQL-запроса:
select * from A left join B on (b.parent_id = a.id)
Это позволит получить все записи A с декартовым произведением каждой записи B, которая ссылается на A, и будет включать записи A, на которые не ссылается B.
Если вы используете:
from A a, B b where b.a = a
тогда это внутреннее соединение, и вы не получаете записи A, на которые не ссылается B.
Я не нашел хорошего способа сделать это без двух запросов, поэтому все, что меньше этого, было бы здорово.
Спасибо.