Как эмулировать левое соединение с тэта стилем? - PullRequest
0 голосов
/ 28 января 2020

Я исправляю старые приложения, основанные на Hibernate 3.1. Мне нужно объединить 3 таблицы, 2 из которых соединены @OneToMany / @ManyToOne - третья нет.

в основном мне нужно сделать что-то вроде (в "псевдо sql")

select t1.field1, max(t2.field2), min(t3.field3)
from t1
left join t2 on t1.id = t2.t1_id
left join t3 on t1.id = t3.t1_id

но в HQL ; и согласно https://vladmihalcea.com/how-to-join-unrelated-entities-with-jpa-and-hibernate/ я не могу явно сделать левое соединение с несвязанной таблицей.

Есть ли способ "express" для слева Поведение объединения (все строки t1, t2, если соединение найдено, еще ноль, t3, если соединение найдено, еще ноль) с объединением в тета-стиле ?

I хотя о union из двух запросов или о where (t1.id = t3.t1_id or t1.id not in (select t1_id from t3), но результаты не приходят ко мне.

...