Zuordnen von Entitätsklassennamen zu SQL-Tabellennamen mit JPA

1. Einleitung

In diesem kurzen Tutorial erfahren Sie, wie Sie SQL-Tabellennamen mit JPA festlegen.

Wir werden erläutern, wie JPA die Standardnamen generiert und wie benutzerdefinierte Namen bereitgestellt werden.

2. Standardtabellennamen

Die Generierung des JPA-Standardtabellennamens ist spezifisch für die Implementierung.

Im Ruhezustand ist der Standardtabellenname beispielsweise der Name der Klasse, in der der erste Buchstabe groß geschrieben wird. Dies wird durch den ImplicitNamingStrategy- Vertrag festgelegt.

Wir können dieses Verhalten jedoch ändern, indem wir eine PhysicalNamingStrategy- Schnittstelle implementieren .

3. Verwenden von @Table

Der einfachste Weg, einen benutzerdefinierten SQL-Tabellennamen festzulegen, besteht darin, die Entität mit @ javax.persistence.Table zu versehen und ihren Namensparameter zu definieren:

@Entity @Table(name = "ARTICLES") public class Article { // ... }

Wir können den Tabellennamen auch in einer statischen endgültigen Variablen speichern:

@Entity @Table(name = Article.TABLE_NAME) public class Article { public static final String TABLE_NAME= "ARTICLES"; // ... }

4. Überschreiben des Tabellennamens in JPQL-Abfragen

Standardmäßig verwenden wir in JPQL-Abfragen den Namen der Entitätsklasse:

select * from Article

Sie können dies jedoch ändern, indem Sie den Parameter name in der Annotation @ javax.persistence.Entity definieren :

@Entity(name = "MyArticle")

Dann würden wir unsere JPQL-Abfrage ändern in:

select * from MyArticle

5. Schlussfolgerung

In diesem Artikel haben wir gelernt, wie JPA Standardtabellennamen generiert und wie SQL-Tabellennamen mit JPA festgelegt werden.

Wie immer ist der gesamte Quellcode auf GitHub verfügbar.