我正在用 JBoss 7.1.1.Final、Weld、Seam 3 编写应用程序。我有以下豆子:
@ConversationScoped
public class ConversationBean implements Serializable {
@Inject
Conversation conversation;
private Article article;
...
}
现在,用户可以创建多个对话,每个对话将与 ConversationBean 的实例相关联。我需要能够获取与长时间运行的对话关联的所有实例。
我需要访问它们的原因是,如果用户多次打开一篇文章(因此他将与同一篇文章创建多个对话)。如果他在一个对话中更改了文章,我希望能够在其他对话中刷新文章。
有没有一些标准的方法可以做到这一点?
编辑:"文章"实例由实体管理器查找,并在对话中进行管理。实体管理器是使用Seam托管持久性上下文检索的。
请参阅 http://docs.jboss.org/weld/reference/latest/en-US/html/contexts.html
@Inject @Http private HttpConversationContext conversationContext;
[...]
conversationContext.getConversations()
每个会话只有一个对话正在进行。注入对话将为您提供一个长时间运行的对话(或临时对话,如果尚未推广)。