Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


8.12.4 アクセサメソッドの作成

ここでは,アクセサメソッドのシグネチャ規則,およびアクセサメソッドへのビジネスロジックの追加について説明します。

〈この項の構成〉

(1) アクセサメソッドのメソッドシグネチャ規則

CJPAプロバイダが永続化プロパティに対してアクセスする場合,プロパティのアクセサメソッドは,次に示すJavaBeansと同じメソッドシグネチャ規則に従っている必要があります。

booleanの戻り値を返すプロパティの場合,getterメソッドはisPropertyという名前にすることもできます。なお,CJPAプロバイダを使用する場合,getterメソッドとsetterメソッドのどちらかしかないときには,アプリケーション開始時に例外が発生します。

また,永続化フィールド,永続化プロパティでコレクション値を扱う場合は,次に示すコレクション値をインタフェースで定義してください。

永続化プロパティがコレクション値となる場合,アクセサメソッドのメソッドシグネチャはこれらのインタフェースのどれかにしてください。または,これらのコレクションのジェネリックな型を使用することもできます(例:Set<T>)。

(2) アクセサメソッドへのビジネスロジックの追加

アクセサメソッドは,プロパティのsetter/getter処理に加えて,値を検証するなどのビジネスロジックを含むことができます。アクセスタイプがプロパティの場合,CJPAプロバイダがアクセサメソッドを呼び出すタイミングでビジネスロジックが動作します。

ただし,この場合には,次の点に注意してください。

プロパティアクセサメソッドでRuntime例外が発生すると,現在のトランザクションはロールバックにマークされます。CJPAプロバイダがエンティティの永続状態の内容を読み込んだり,格納する際のアクセサメソッドで例外が発生したりした場合,トランザクションはロールバックされます。また,アプリケーション例外をラップするPersistenceException例外が発生します。