Kortlægning af enhedsklassenavne til SQL-tabelnavne med JPA
1. Introduktion
I denne korte vejledning lærer vi, hvordan du indstiller SQL-tabelnavne ved hjælp af JPA.
Vi dækker, hvordan JPA genererer standardnavne, og hvordan man leverer tilpassede.
2. Standardtabelnavne
JPA-genereringen af standardtabelnavnet er specifik for implementeringen.
For eksempel er standardtabelnavnet i dvale navnet på klassen med det første bogstav med stort bogstav. Det bestemmes gennem ImplicitNamingStrategy kontrakt.
Men vi kan ændre denne adfærd ved at implementere en PhysicalNamingStrategy interface.
3. Brug @Bord
Den nemmeste måde at indstille et brugerdefineret SQL-tabelnavn på er at kommentere enheden med @javax.persistence.Table og definer navneparameter:
@Entity @Table (name = "ARTICLES") offentlig klasse Artikel {// ...}
Vi kan også gemme tabelnavnet i en statisk slutvariabel:
@Entity @Table (name = Article.TABLE_NAME) public class Article {public static final String TABLE_NAME = "ARTICLES"; // ...}
4. Overskrivning af tabelnavnet i JPQL-forespørgsler
Som standard i JPQL-forespørgsler bruger vi enhedsklassens navn:
vælg * fra artikel
Men vi kan ændre det ved at definere navneparameteren i @ javax.persistence.Entity kommentar:
@Entity (name = "MyArticle")
Derefter ændrede vi vores JPQL-forespørgsel til:
vælg * fra MyArticle
5. Konklusion
I denne artikel har vi lært, hvordan JPA genererer standardtabelnavne, og hvordan man indstiller SQL-tabelnavne ved hjælp af JPA.
Som altid er al kildekode tilgængelig på GitHub.