2011-09-12 2 views
5

La mia applicazione funziona correttamente in un ambiente Windows, ma quando sto provando a testare in un server Linux, ho un problema con il sql JPA EclipseLink generato. Ho creato tutte le mie tabelle in minuscolo, ma quando guardo nei log, vedo una cosa del genere, il tutto in maiuscolo:Problema con JPA, EclipseLink e case sensitive mysql

INSERT INTO PFC(ID, ALUMN,PROPOSED_ID) VALUES (?, ?, ?) 

mescolato con altri come questo (sequenze) in minuscolo:

INSERT INTO buzonmensajes (mensajeid, buzonid) VALUES (?, ?) 
     bind => [27, 1] 

e, naturalmente, tutto va male, il server non ha trovato i tavoli maiuscole, ecc ..

Usiamo orm.xml per definire tutte le azioni di database (query, enti, ecc ..) e tutto è in minuscolo ...

So che esiste un parametro Mysql per modificare questo comportamento, ma sfortunatamente non mi è permesso cambiarlo. Il mio problema è che ho bisogno di dire a JPA di creare tutte le query e inserire statmet con il nome della tabella in minuscolo

risposta

5

Il problema è probabile perché si consente a EclipseLink di default alcuni dei nomi. Se si specificano i nomi utilizzando il caso del proprio database, EclipseLink deve utilizzare tali casi per impostazione predefinita.

Se si scopre che non funziona si può sempre far valere caso utilizzando identificatori delimitati utilizzando il modello '\ "': @Table("\"pfc\"") ma questo non dovrebbe essere richiesto

Quale versione di EclipseLink stai usando

.?
+1

Ciao, Gordon. Grazie per quattro aiuto. Non ho annotazioni, configuro tutte le mie entità in orm.xml, ma hai ragione, aggiungo il tag

per definire il nome della tabella e il problema risolto, qualcosa come questo :
Aitor