JPAを使用したエンティティクラス名からSQLテーブル名へのマッピング

1. 前書き

この短いチュートリアルでは、JPAを使用してSQLテーブル名を設定する方法を学習します。
JPAがデフォルト名を生成する方法と、カスタム名を提供する方法について説明します。

2. デフォルトのテーブル名

JPAのデフォルトのテーブル名の生成は、その実装に固有です。
たとえば、Hibernateのデフォルトのテーブル名は、最初の文字を大文字にしたクラスの名前です。 _ImplicitNamingStrategy_コントラクトによって決定されます。
ただし、https://www.baeldung.com/hibernate-naming-strategy [_PhysicalNamingStrategy_インターフェースの実装]でこの動作を変更できます。

3. _ @ Table_を使用する

カスタムSQLテーブル名を設定する最も簡単な方法は、エンティティに[email protected]_の注釈を付け、その名前パラメーターを定義することです。
@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
ただし、_ @ javax.persistence.Entity_アノテーションでnameパラメーターを定義することで変更できます。
@Entity(name = "MyArticle")
次に、JPQLクエリを次のように変更します。
select * from MyArticle

5. 結論

この記事では、JPAがデフォルトのテーブル名を生成する方法と、JPAを使用してSQLテーブル名を設定する方法を学びました。
いつものように、すべてのソースコードはhttps://github.com/eugenp/tutorials/tree/master/persistence-modules/java-jpa-2[GitHub上]で入手できます。