Kartlegge navn på entitetsklasser til SQL-tabellnavn med JPA

1. Introduksjon

I denne korte opplæringen lærer vi hvordan du angir navn på SQL-tabeller ved hjelp av JPA.

Vi vil dekke hvordan JPA genererer standardnavn og hvordan du gir tilpassede.

2. Standard tabellnavn

JPAs standard generering av tabellnavn er spesifikk for implementeringen.

For eksempel, i dvalemodus er standardtabellnavnet navnet på klassen med den første bokstaven med store bokstaver. Det bestemmes gjennom ImplicitNamingStrategy kontrakt.

Men vi kan endre denne oppførselen ved å implementere en PhysicalNamingStrategy grensesnitt.

3. Bruke @Bord

Den enkleste måten å angi et tilpasset SQL-tabellnavn er å kommentere enheten med @javax.persistence.Table og definer navneparameteren:

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

Vi kan også lagre tabellnavnet i en statisk sluttvariabel:

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

4. Overskriving av tabellnavnet i JPQL-spørringer

Som standard i JPQL-spørsmål bruker vi navnet på enhetsklassen:

velg * fra artikkel

Men vi kan endre det ved å definere navneparameteren i @ javax.persistence.Entity kommentar:

@Entity (name = "MyArticle")

Deretter vil vi endre JPQL-spørringen til:

velg * fra MyArticle

5. Konklusjon

I denne artikkelen har vi lært hvordan JPA genererer standard tabellnavn og hvordan du angir SQL-tabellnavn ved hjelp av JPA.

Som alltid er all kildekode tilgjengelig på GitHub.


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