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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top