Heim > Java > javaLernprogramm > Warum generiert JPA Tabellen mit Spalten in alphabetischer Reihenfolge?

Warum generiert JPA Tabellen mit Spalten in alphabetischer Reihenfolge?

DDD
Freigeben: 2024-10-29 06:23:30
Original
297 Leute haben es durchsucht

Why Does JPA Generate Tables with Columns in Alphabetical Order?

Falsche Tabellenreihenfolge in JPA-generierter Tabelle

Problem:

Java Persistence API (JPA) scheint generiert worden zu sein eine Tabelle mit einer falschen Spaltenreihenfolge, insbesondere mit der Spalte „Name“, die vor der Spalte „Organisationsnummer“ erscheint, obwohl die gewünschte Reihenfolge umgekehrt ist.

Untersuchung:

Bei der Untersuchung der Tabelle wird die folgende Reihenfolge beobachtet:

+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| id                 | bigint(20)   | NO   | PRI | NULL    | auto_increment | 
| name               | varchar(255) | NO   |     | NULL    |                | 
| organizationNumber | varchar(255) | NO   | UNI | NULL    |                | 
+--------------------+--------------+------+-----+---------+----------------+
Nach dem Login kopieren

Ursache:

JPA generiert Spalten standardmäßig in alphabetischer Reihenfolge. Diese Reihenfolge soll eine deterministische Reihenfolge über Cluster hinweg sicherstellen und Inkonsistenzen in den Spaltenpositionen vermeiden.

Problemumgehung:

Leider gibt es keine einfache Lösung für dieses Problem. Eine Problemumgehung besteht darin, die Spalten manuell so zu benennen, dass die gewünschte Reihenfolge erzwungen wird. Dies kann erreicht werden, indem den Spaltennamen entsprechende alphanumerische Zeichen vorangestellt werden, wie zum Beispiel:

@Entity
@NamedQuery(name = "allOrganizations", query = "SELECT org FROM Organization org order by name")
public class Organization {

    private Long id;
    @Column(name = "a_name")
    private String name;
    @Column(name = "b_organizationNumber")
    private String organizationNumber;

    // ...
}
Nach dem Login kopieren

Dieser Ansatz erzwingt, dass die Spalte „id“ zuerst angezeigt wird, gefolgt von „name“ (mit dem Präfix „a“). ) und dann „organizationNumber“ (mit dem Präfix „b“).

Das obige ist der detaillierte Inhalt vonWarum generiert JPA Tabellen mit Spalten in alphabetischer Reihenfolge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage