Рубрики
Без рубрики

Сопоставление имен классов сущностей с именами таблиц SQL с помощью JPA

Узнайте, как по умолчанию создаются имена таблиц и как переопределить это поведение.

Автор оригинала: baeldung.

1. введение

В этом коротком уроке мы узнаем, как задать имена таблиц SQL с помощью JPA.

Мы рассмотрим, как JPA генерирует имена по умолчанию и как предоставить пользовательские имена.

2. Имена таблиц по умолчанию

Создание имени таблицы по умолчанию JPA зависит от ее реализации.

Например, в режиме гибернации имя таблицы по умолчанию-это имя класса с заглавной буквой. Это определяется с помощью ImplicitNamingStrategy контракта.

Но мы можем изменить это поведение, реализовав интерфейс PhysicalNamingStrategy .

3. Использование @Table

Самый простой способ задать пользовательское имя таблицы SQL-это аннотировать сущность с помощью @ javax.persistence.Таблица и определите параметр ее имени:

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

Мы также можем сохранить имя таблицы в статической конечной переменной:

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

4. Перезапись имени таблицы в запросах JPQL

По умолчанию в запросах JPQL мы используем имя класса сущностей:

select * from Article

Но мы можем изменить его, определив параметр name в @javax.persistence.Сущность аннотация:

@Entity(name = "MyArticle")

Затем мы изменим наш запрос JPQL на:

select * from MyArticle

5. Заключение

В этой статье мы узнали, как JPA генерирует имена таблиц по умолчанию и как задать имена таблиц SQL с помощью JPA.

Как всегда, весь исходный код доступен на GitHub .