jpa-entity-table-names
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上]で入手できます。