LEFT JOIN di tabelle con EJBQL
Domanda
Sto cercando di unire due EJB utilizzando EJBQL (con un sottostante di dati di MySQL di origine).Le due tabelle in questione sono
Machine
- Hostname
- ... unrelated fields ...
e
Location
- Code
- Human readable description
Le tabelle dovrebbero essere di SINISTRA hanno aderito il codice di posizione e i primi tre caratteri del nome host del computer.In retta di MySQL con il comando:
SELECT * FROM machine m LEFT JOIN location l ON (SUBSTRING(m.`Name`, 1,3) = l.`Code`);
Quando ho messo una cosa simile in EJBQL ho tutti i tipi di errori raning da null poninter eccezioni di sintassi non valida eccezioni, ecco quello che ho provato:
query="SELECT NEW someObj(m, loc) FROM Machine as m " +
"LEFT JOIN FETCH Location as loc " +
"WHERE (SUBSTRING(m.hostname, 1, :length) = loc.code)"
Ho anche provato con la "A" invece di "DOVE" -- ma EJBQL torna con un inaspettato parola chiave quando uso...
Quindi, qualcuno è riuscito a fare qualcosa di simile prima?La documentazione EJBQL sembra indicare che LEFT join è OK, quindi non sono sicuro di che cosa l'affare è...
Grazie
Edit:L'eccezione ricevo è:
outer or full join must be followed by path expression
-- e ' stato sepolto nella stessa linea come il puntatore null tassi
Edit 2:
Non c'è nessuna relazione tra una Macchina e una Posizione, purtroppo non posso cambiare che
Nessuna soluzione corretta