Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
@PersistenceContextをアプリケーションに記載している場合に,DDで<persistence-context-ref>タグを定義していると,アノテーションで定義した内容はDDで定義した内容で上書きされます。この場合,アノテーションとDDとの対応は,@PersistenceContextのname属性と,DDの<persistence-context-ref>タグ下にある<persistence-context-ref-name>タグの対応で判断されます。なお,@PersistenceContextでname属性が明示的に指定されていない場合でも,name属性にはデフォルト値が存在するので注意が必要です。
次に@PersistenceContextに指定した属性がDDのタグでオーバーライドされるときの注意について説明します。
DDの<persistence-unit-name>タグは@PersistenceContextのunitName属性をオーバーライドします。通常,永続化ユニット名を変更すると,アプリケーションは動作しなくなるので,DDおよびアノテーションを定義する際には注意してください。
DDの<persistence-context-type>タグは@PersistenceContextのtype属性をオーバーライドします。通常,永続化コンテキストのライフサイクルの種類を変更すると,アプリケーションは動作しなくなるので,DDおよびアノテーションを定義する際には注意してください。
DDの<persistence-property>に指定されたプロパティは,@PersistenceContexのproperties属性に指定されたプロパティに追加されます。ただし,プロパティ名が同じ場合には,プロパティ値がオーバーライドされます。
インジェクションターゲットをオーバーライドすることはできません。なお,DDに<injection-target>タグを記述する場合には,@PersistenceContexが付加されたフィールドやメソッドを正確に指定してください。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.