2013-06-04 17 views
6

Czy istnieje sposób na uzyskanie kolumn w kolejności, w jakiej są one zadeklarowane w klasie Java, lub do określenia kolejności w inny sposób?Kolejność kolumn na OpenJPA

Używam zadania ant mapping narzędzie do generowania DDL dla moich klas w pliku sql.

Odpowiedz

6

Nie, każda implementacja JPA może dowolnie ustawiać kolumny w wygenerowanym pliku DDL w kolejności, w jakiej chce, i generalnie programista nie ma nad tym kontroli - na przykład: Hibernate używa alphabetical order, ale DataNucleus zezwala na specyfikację z column position dzięki niestandardowej adnotacji. Niestety, OpenJPA nie zapewnia mechanizmu do określania kolejności kolumn.

Miałem podobny problem jakiś czas temu, wytyczne bazy danych mojego klienta nakazały pewne uporządkowanie w kolumnach, a mój dostawca JPA wytworzył inne zamówienie. Rozwiązanie? napisaliśmy program Java do przetwarzania tekstu, który, biorąc pod uwagę wygenerowany plik DDL jako dane wejściowe, zmienił kolejność kolumn w kodzie, dzięki czemu spełnił wytyczne i wygenerował jako wynik nowy plik ze zmodyfikowanym DDL; program był uruchamiany z zadania Ant. Nie ładne, ale z praktycznego punktu widzenia było to najlepsze rozwiązanie, jakie moglibyśmy zdobyć.

+3

Dzięki Oscar za odpowiedź. To naprawdę smutne, że OpenJPA nie zapewnia sposobu na określenie kolejności colummns =/ –

+0

Wspaniale będzie móc dodać parametr zamówienia do atrybutu Column – borjab