2013-12-09 11 views
5

I have 2 tables/entities con nessuna associazione. posso andare per croce si unisce in JPAJPA - left join 2 tables senza associazione

FROM A as a, B as b WHERE b.col1=a.col1 

Come posso eseguire un sinistra-join?

Voglio tutti i valori da A e riempirli con valori B, ove possibile e lasciano NULL dove non c'è B.

non funziona:

FROM A as a LEFT JOIN B as b WHERE b.col1=a.col1 

Path previsto per partecipare!

Percorso non valido: 'b.col1'

risposta

-3

Ciò è possibile con JPA con query seguente:

FROM A as a, B as b WHERE b.col1=a.col1 OR b.col1 IS NULL 
+1

Questo non è lo stesso di un LEFT JOIN. Supponiamo di avere b.col1 = 3 e no a.col1 = 3. La tua query non restituirà questa riga, ma un JOIN SINISTRO lo restituirà. –

4

Non si può fare che in APP, fintanto che non v'è alcuna relazione tra le entità.

Solutions:

  1. utilizzare le query nativi.
  2. Aggiungere una relazione tra di essi (eventualmente uno indiretto pigro). Con indiretto intendo qualcosa come: A conosce PseudoEntity, PseudoEntity conosce B (ma il proprietario della relazione è entità B), B conosce PseudoEntity.