Cosminexus 機能解説
Entity Bean(CMP)を実装するときの注意事項を示します。
EJB 1.1仕様およびEJB 2.0仕様では,setEntityContextメソッドでのリソースマネジャへのアクセスは許されていません。
プライマリキーとして複合プライマリキーを使用する以外で,ユーザ定義型のCMPフィールドを使用できません。
Collection型のCMRフィールドやCollection型のCMRフィールドのIteratorを使用する場合,CMRフィールドを取得したときのトランザクションの範囲内で,CMRフィールドやIteratorへアクセスできます。次のコーディング例のcallTeamメソッドでは,CMRフィールドのgetterメソッドであるgetPlayersメソッドと,それに続くIteratorを使用した操作をすべて同一トランザクション内で実行する必要があります([a]から[b]の間)。
public void callTeam() { : //[a] Collection playersInTeam = team.getPlayers(); Iterator i = playersInTeam.iterator(); while (i.hasNext()) { LocalPlayer p = (LocalPlayer) i.next(); : } //[b] }
このコーディング例をトランザクション外で実行した場合は,IllegalStateException例外が発生します。これを避けるために,トランザクション内で実行されるようにCMTなどで設定してください。
CMRのcascade-deleteを使用する場合,次の制限があります。
CMP Entity BeanのDDの<prim-key-class>タグにインタフェースおよび抽象クラスを指定した場合,デプロイ時にエラーメッセージKDJE42039-Eが出力され,デプロイ処理はエラー終了されます。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.