Как получить все существующие длительные разговоры в Weld?

Я пишу приложение в JBoss 7.1.1.Final, Weld, Seam 3. У меня есть следующий компонент:

@ConversationScoped
public class ConversationBean implements Serializable {

   @Inject
   Conversation conversation;

   private Article article;
...
}

Теперь пользователь может создать несколько бесед, каждая беседа будет связана с экземпляром ConversationBean. Мне нужно иметь возможность получить все те экземпляры, которые связаны с длительным диалогом.

Причина, по которой мне нужен доступ к ним, заключается в том, что если пользователь открывает одну статью несколько раз (таким образом, он создаст несколько бесед с одной и той же статьей). Если он изменит статью в одном разговоре, я хочу иметь возможность обновлять статьи в других разговорах.

Есть ли какой-то стандартный способ сделать это?

Редактировать: экземпляр «статья» просматривается entityManager и управляется в беседе. Менеджер сущностей извлекается с использованием контекста сохраняемости, управляемого швом.


person lukas    schedule 09.08.2012    source источник


Ответы (2)


За сеанс происходит только один разговор. Injection Conversation даст вам один длительный разговор (или временный разговор, если он не был повышен).

person LightGuard    schedule 10.08.2012

см. http://docs.jboss.org/weld/reference/latest/en-US/html/contexts.html

@Inject @Http private HttpConversationContext conversationContext;

[...]    

     conversationContext.getConversations()
person jboz    schedule 02.12.2013