5.2.3. エンティティ Bean
エンティティ Bean をコンテキスト変数にバインドさせると Seam コンポーネントとして機能させることができます。 エンティティにはコンテキスト依存識別子に加え永続識別子があるため、 エンティティのインスタンスは Seam によって暗黙的にインスタンス化されるのではなく、 通常は Java コード内で明示的にバインドされます。
エンティティ Bean コンポーネントはバイジェクションやコンテキスト区分に対応しません。 また、 エンティティ Bean が引き起こす検証の呼び出しにも対応していません。
通常、 エンティティ Bean は JSF アクションリスナーとしては使用されず、 表示あるいはフォームのサブミット用に JSF コンポーネントにプロパティを提供するバッキング Bean として機能させることが多くあります。 ステートレスセッション Bean アクションリスナーと合わせてバッキング Bean として使用し create、 update、 delete などのタイプの機能を実装するのが一般的です。
エンティティ Bean はデフォルトで対話コンテキストにバインドされます。 ステートレスコンテキストにはバインドできません。
注記
クラスタ化環境では、 エンティティ Bean を直接対話 (またはセッションスコープ Seam コンテキスト変数) にバインドすることは、ステートフルセッション Bean を使って エンティティ Bean を参照することより効率性に欠けます。 このためすべての Seam アプリケーションがエンティティ Bean を Seam コンポーネントとして定義するわけではありません。
Seam エンティティ Bean コンポーネントは
Component.getInstance() または @In(create=true) のいずれかを使用してインスタンス化されるか、 new 演算子を使用して直接インスタンス化されます。