Entiteitsklassenamen toewijzen aan SQL-tabelnamen met JPA
1. Inleiding
In deze korte zelfstudie leren we hoe u SQL-tabelnamen instelt met JPA.
We bespreken hoe JPA de standaardnamen genereert en hoe u aangepaste namen kunt opgeven.
2. Standaard tabelnamen
Het genereren van de standaard JPA-tabelnaam is specifiek voor de implementatie ervan.
In Hibernate is de standaardtabelnaam bijvoorbeeld de naam van de klasse met de eerste letter met een hoofdletter. Het wordt bepaald door de ImplicitNamingStrategy contract.
Maar we kunnen dit gedrag veranderen door een PhysicalNamingStrategy koppel.
3. Met behulp van @Tafel
De eenvoudigste manier om een aangepaste SQL-tabelnaam in te stellen, is door de entiteit te annoteren met @javax.persistence.Table en definieer de naam parameter:
@Entity @Table (name = "ARTIKELEN") public class Article {// ...}
We kunnen de tabelnaam ook opslaan in een statische laatste variabele:
@Entity @Table (naam = Article.TABLE_NAME) public class Article {public static final String TABLE_NAME = "ARTIKELEN"; // ...}
4. Overschrijven van de tabelnaam in JPQL-query's
Standaard gebruiken we in JPQL-query's de naam van de entiteitsklasse:
selecteer * uit artikel
Maar we kunnen het wijzigen door de parameter name in de @ javax.persistence.Entity annotatie:
@Entity (name = "MyArticle")
Vervolgens zouden we onze JPQL-query wijzigen in:
selecteer * uit MyArticle
5. Conclusie
In dit artikel hebben we geleerd hoe JPA standaard tabelnamen genereert en hoe u SQL-tabelnamen instelt met JPA.
Zoals altijd is alle broncode beschikbaar op GitHub.