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.


$config[zx-auto] not found$config[zx-overlay] not found