ページの先頭行へ戻る
Enterprise Application Platform V1.2.0 GlassFishユーザーズガイド

1.5.8 JPA機能における注意事項

JPA機能を使用する場合、以下に注意してください。

JPAEntityについての注意事項
テーブル名とカラム名を大文字にするか小文字にするかについての注意事項

永続性プロバイダが内部的に自動生成したSQL文を実行する場合、識別子には大文字/小文字を区別するダブルコーテーションなどは付与されません。
例えば、カラム名に"id"や"name"を指定した場合、以下のようなSQL文が実行されます。

select id, name from employee

この場合、識別子が大文字/小文字のどちらで扱われるかについては、データベースの仕様により異なります。
このため、以下のように設定することをお勧めします。

  • Oracle、JavaDB、SQL Serverの場合、マッピング対象のテーブル名とカラム名を大文字に統一することを推奨します。(またはデフォルト設定を利用)

  • PostgreSQL ベースのデータベースの場合、マッピング対象のテーブル名とカラム名を小文字に統一することを推奨します。

JPAを使用するアプリケーションを配備する際の注意事項

以下の条件のどれかにあてはまる場合、アプリケーションの配備時にJPAがデータベースへ接続を行います。

  • 以下の条件を満たす場合

    • deployment descriptor (persistence.xml)の<persistence-unit>に<jta-data-source>、または<non-jta-data-source>を指定している。かつ、

    • アプリケーション内で@PersistenceUnitを使用しEntityManagerFactoryインスタンスを取得している。

  • プライマリキー値の自動生成機能を使用している場合

  • データベーステーブル自動生成機能を使用している場合

上記条件を満たす場合、アプリケーションをGlassFish Serverクラスター、またはDASへ配備する前にJDBCドライバの環境設定を行ってください。
詳細は「5.8.1 JDBCドライバの環境設定」を参照してください。

JPAEntityを引数にもつEJBのメソッド呼び出しを行っている場合の注意事項

アプリケーション内でJPAのEntityを引数にもつEJBのメソッド呼び出しを行っている場合、Java SEスタンドアロンアプリケーションおよびJakarta EEアプリケーションクライアントが通信する接続先サーバをIPアドレスで指定できません。

接続先サーバはIPアドレスではなくホスト名で指定してください。

永続性プロバイダを使用する場合の注意事項