5.2.9. 複数のロールを持つコンポーネント
システム内で複数の役割を果たす Seam コンポーネントクラスがあります。 たとえば、
User クラスは通常現在のユーザーを表すセッションスコープのコンポーネントですが、 ユーザー管理画面では対話スコープのコンポーネントになります。 @Role アノテーションを使用すると、 1 つのコンポーネントに異なるスコープで追加の名前が付いたロールを定義することができます。 これにより、 同じコンポーネントクラスを別のコンテキスト変数にバインドさせることができます (いずれの Seam コンポーネントの インスタンス も複数のコンテキスト変数にバインド可能ですが、 クラスレベルで行えるため自動インスタンス化を利用することができます)。
@Name("user")
@Entity
@Scope(CONVERSATION)
@Role(name="currentUser", scope=SESSION)
public class User { ... }
@Name("user")
@Entity
@Scope(CONVERSATION)
@Role(name="currentUser", scope=SESSION)
public class User { ... }
@Roles アノテーションは必要に応じてロールを追加で指定することができます。