1. Введение
В этом кратком руководстве мы узнаем, как задавать имена таблиц SQL с помощью JPA.
Мы рассмотрим, как JPA генерирует имена по умолчанию и как предоставлять собственные.
2. Имена таблиц по умолчанию
Генерация имени таблицы JPA по умолчанию зависит от ее реализации.
Например, в Hibernate именем таблицы по умолчанию является имя класса с заглавной первой буквой. Это определяется контрактом ImplicitNamingStrategy .
Но мы можем изменить это поведение, реализовав интерфейс PhysicalNamingStrategy
.
3. Использование @Table
Самый простой способ задать пользовательское имя таблицы SQL — аннотировать объект с помощью @
javax.persistence.Table
и определить его параметр имени:
@Entity
@Table(name = "ARTICLES")
public class Article {
// ...
}
Мы также можем сохранить имя таблицы в статической переменной final:
@Entity
@Table(name = Article.TABLE_NAME)
public class Article {
public static final String TABLE_NAME= "ARTICLES";
// ...
}
4. Перезапись имени таблицы в запросах JPQL
По умолчанию в запросах JPQL мы используем имя класса сущности:
select * from Article
Но мы можем изменить его, определив параметр имени в аннотации @javax.persistence.Entity
:
@Entity(name = "MyArticle")
Затем мы изменили бы наш запрос JPQL на:
select * from MyArticle
5. Вывод
В этой статье мы узнали, как JPA генерирует имена таблиц по умолчанию и как устанавливать имена таблиц SQL с помощью JPA.
Как всегда, весь исходный код доступен на GitHub .