Java Persistence APIを使用して異常が発生した場合、Interstage永続性プロバイダは例外をスローします。例外のcauseとして、org.eclipse.persistenceで始まる例外をスローする場合があります。ここでは、この例外情報について説明します。
なお、ここで説明している例外が発生した場合、以下の対処が有効です。
ほとんどの例外は環境またはアプリケーションの問題を表しています。異常が発生しないように、必要に応じて環境を確認しアプリケーションを修正してください。
例外情報に記述されている例外クラス名を確認して、その例外クラスの説明で意味と対処方法を確認してください。
例外のスタックトレースが出力されている場合、スタックトレースに続けて「Caused by:」として別の例外が出力されていることがあります。根本原因を表していますので、こちらをあわせて確認してください。
スタックトレースから異常が発生したアプリケーションのクラス名、メソッド名や呼び出していたJava Persistence APIのクラスとメソッド名を特定できる場合があります。
注意
ここで説明しているすべての例外クラスはjava.lang.RuntimeExceptionクラスを継承しているため、説明している例外をキャッチしなくてもコンパイルエラーにはならずにアプリケーションを実行できます。
また、アプリケーションで例外をキャッチする場合、汎用的ではないアプリケーションとなりますのでorg.eclipse.persistenceで始まる例外クラスをキャッチする処理は行わないでください。アプリケーションで例外をキャッチする場合にはJava EE規約のAPI 仕様で規定された例外をキャッチするように修正してください。例えば、javax.persistence.EntityManagerのpersistメソッドは、API仕様としてjavax.persistence.EntityExistsException、java.lang.IllegalStateException、java.lang.IllegalArgumentException、javax.persistence.TransactionRequiredExceptionの例外クラスが返却されると規定されているため、これらの例外クラスをキャッチするように修正してください。
例外情報の形式
Exception [EclipseLink-{0}] ({1}): {2}
Exception Description: {3}
Internal Exception: {4}
可変情報
意味 | |
---|---|
{0} | エラー番号 |
{1} | 内部情報 |
{2} | 例外クラス名 |
{3} | エラー情報 |
{4} | 本例外にラップされた例外情報 |
情報がない項目はその行が出力されません。
例外スタックトレースの形式
Local Exception Stack:
{0}
Exception Description: {1}
Internal Exception: {2}
可変情報
意味 | |
---|---|
{0} | 本例外の例外情報とスタックトレース |
{1} | エラー情報 |
{2} | 本例外にラップされた例外のスタックトレース |
情報がない項目は出力されません。
例外の説明
[意味]
エンティティマネージャファクトリまたはエンティティマネージャの作成に失敗しました。
[ユーザの対処]
エラー情報やJDBCドライバから返却された例外情報を参照して原因を確認し、原因を取り除いてから再度実行してください。
[意味]
データベースのアクセス時に異常が発生しました。
[ユーザの対処]
エラー情報やJDBCドライバから返却された例外情報を参照して原因を確認し、原因を取り除いてから再度実行してください。
[意味]
JPAの実行環境やデータベース環境に不適当な箇所があります。または、永続化フィールドがInterstage永続性プロバイダで対応している型に適合していません。
[ユーザの対処]
エラー情報を参照して原因を確認し、原因を取り除いてから再度実行してください。
エラー番号が7027の場合、プライマリキー値の自動生成機能で使用するデータベースのシーケンスが作成されているか、確認してください。
エラー番号が7212の場合、java.util.Date型またはjava.util.Calendar型の永続化フィールドにTemporalTypeが定義されているか、確認してください。
エラー番号が7231の場合、一意制約違反が発生したため、テーブルのレコード、または挿入しようとしたEntityの値を確認してください。