Sono piggy-off di How to join tables in unidirectional many-to-one condition?.Come ho lasciato le tabelle di join in unidirezionale many-to-one in Hibernate?
Se si dispone di due classi:
class A {
@Id
public Long id;
}
class B {
@Id
public Long id;
@ManyToOne
@JoinColumn(name = "parent_id", referencedColumnName = "id")
public A parent;
}
B -> A è una relazione molti a uno. Capisco che potrei aggiungere una raccolta di Bs ad A, ma non voglio quell'associazione.
Quindi la mia domanda reale è, C'è un modo HQL o criteri di creare query SQL:
select * from A left join B on (b.parent_id = a.id)
Questo recupererà tutti i record con un prodotto cartesiano di ogni record B che fa riferimento A e includerà un record che non ha B che fa riferimento a loro.
se si utilizza:
from A a, B b where b.a = a
, allora è una join interno e non si ricevono i record A che non hanno un B loro riferimento.
Non ho trovato un buon modo per farlo senza due query, quindi niente di meno sarebbe bello.
Grazie.
@Joe B E quello che vuoi è ... ??? –
@Arthur Ronald F D Garcia: Ho bisogno di un metodo Criteria o HQL per creare la query SQL raw che ho scritto sopra. Ho modificato il post in grassetto la domanda vera e propria. – jbarz