2013-06-04 16 views
6

C'è un modo per ottenere le colonne nell'ordine in cui sono dichiarate nella classe Java o per specificare l'ordine in un altro modo?Ordine colonne su OpenJPA

Sto utilizzando l'attività ant dello strumento di mappatura per generare il DDL per le mie classi in un file sql.

risposta

6

No, ogni implementazione di JPA è libera di disporre le colonne nel DDL generato nell'ordine che ritiene opportuno, e in generale il programmatore non ha alcun controllo su questo - per esempio: Hibernate utilizza alphabetical order, ma DataNucleus consente la specifica di un column position grazie a un'annotazione non standard. Purtroppo, OpenJPA non fornisce un meccanismo per specificare l'ordinamento di colonne.

Ho avuto un problema simile qualche tempo fa, le linee guida dei dati del mio cliente richiedevano un certo ordine nelle colonne e il mio provider JPA ha prodotto un ordine diverso. La soluzione? abbiamo scritto un programma Java per l'elaborazione di testo che, dato il DDL generato come input, ha riordinato le colonne nel codice in modo tale che soddisfacesse le linee guida e producesse come output un nuovo file con il DDL modificato; il programma è stato eseguito da un'attività Ant. Non bella, ma dal punto di vista pratico è stata la soluzione migliore che abbiamo potuto raccogliere.

+3

Grazie Oscar per la tua risposta. È davvero triste che OpenJPA non fornisca un modo per specificare l'ordine dei colummns =/ –

+0

Sarà fantastico poter aggiungere un parametro di ordine all'attributo Column – borjab