Customer
というエンティティー Bean がある場合、それをデータベース内の customer
表にマッピングするために、@Table(name=CUSTOMER)
注釈の name
属性を使用する必要はありません。
そのため命名規則では、コードを簡素化するために、注釈で多くのデフォルト名を使用するという事を考慮しておく必要があります。これは、認識しておくべき暗黙の名前付けがあることを意味します。注釈の命名規則では、すべてデフォルトに従うことをお勧めします。注釈にコードを記述する代わりに、デフォルトを利用します。
識別子の種類 |
命名規則 |
例と参考資料 |
エンティティー (注釈は @Entity) | 単にオブジェクトの名前を使用。 "Bean" または "POJO" 接尾辞を付加しない。 クラスの命名規則に従う。 |
例: Address.java は address エンティティーの名前。 |
EntityManagerFactory (注釈は @PersitenceUnit) | エンティティーマネージャーファクトリが 1 つだけの場合、名前は emf 。複数のエンティティーマネージャーファクトリがある場合は、規則では <persistence unit name>Emf のように名前に "Emf" を付加。 |
例:public EntityManagerFactory emf; 1 つ以上の場合の例: public EntityManagerFactory pestoreEmf; public EntityManagerFactory inventoryWarehouseEmf; |
エンティティーマネージャー (注釈は @PersistenceContext) | エンティティーマネージャーが 1 つだけの場合、名前は em 。複数のエンティティーマネージャーがある場合は、名前に "Em" を付加。エンティティーマネージャーが持続性ユニットと密接に関係していることがよくあるため、<持続性ユニット名>Em が一般的。 |
例:
1 つ以上の場合の例: private EntityManager pestoreE m; private EntityManager inventoryWarehouseEm; |
UserTransaction | utx を使用。 |
例:public UserTransaction utx; |
リスナー (注釈は @EntityListeners) | 規則では、エンティティー名に "Listener" を付加。 |
例:OrderListener |
持続性ユニット |
リソース名に基づく名前。リソース名に接尾辞として "Pu" を付ける。リソース名は大文字と小文字を混在させ、各単語の先頭文字を大文字にする。<リソース名>Pu |
例 (persistence.xml ファイル内):<persistence> |
データソース名 |
リソース名に基づく名前。リソース名は大文字と小文字を混在させ、各単語の先頭文字を大文字にする。 |
例: jdbc/PetStoreDB |
O/R マッピングファイル O/R マッピングファイルは、ソースコードで O/R マッピング注釈を無効にする場合に使用するファイル。 |
META_INF/persistence.xml ごとにマッピングファイルが 1 つだけ必要な場合は、デフォルト名の orm.xml を使用。複数のマッピングファイルが必要な場合は、 <リソース名>Orm .xml を使用。 |
例:<persistence> |
名前付きクエリーと検索メソッド |
小文字から始めて大文字と小文字を混在させ、途中の単語の先頭文字を大文字にする。 名前付きクエリーはスコープを指定。例では、クラス名をスコープとして使用。 |
たとえば、次の名前付きクエリーでは "getItemsPerProductCategory" がスコープ。@NamedQuery( このあと、名前付きクエリーを使用するクエリーで、次のようにスコープを指定して使用。 Query query =
|
名前付きパラメータ | 小文字から始めて大文字と小文字を混在させ、途中の単語の先頭文字を大文字にする。 |
Java クエリー言語では、クエリーに渡すことが可能な名前付きパラメータを指定できる。それら名前付きパラメータは名前付きパラメータによっても使用される。 例: パラメータ ":categoryName" query = SELECT i FROM Item i WHERE i.product.categoryId LIKE :categoryName "); categoryName", "dogs"); |
データベース |
データベースの命名規則がすでにある場合は、その規則に従う。そうでない場合は、アプリケーションにちなんだ名前をデータベースに付けて、DB を付加する。 <アプリケーション名>DB |
例: PetStoreDB |
Customer
のように単数形です。この場合、Customer エンティティーのエンティティー注釈では、このマッピング情報を CUSTOMERS に置き換える必要があります。たとえば Customer エンティティーの @Table(name=CUSTOMERS) のように、各エンティティークラスは表の注釈を使用してエンティティーを表にマッピングする必要がありますが、この命名方法は一般的であるため、もう 1 つの規則とみなします。