В настоящее время я пытаюсь получить CDI (точнее, Weld) для работы с JSF 2 и продолжительным разговором. Я начинаю разговор в @ConversationScoped мой бэк-бэк. Я также создаю диспетчер объектов @ConversationScoped. К сожалению, сущность, которую я редактирую в своей фонотеке, всегда получает значение LazyInitializationException, когда JSF пытается написать поле сопоставления @ManyToMany. Кажется, что сущность get отделилась от entitymanager. В моем EntityManagerProducer (см. Ниже) метод createEntityManager() не называется bevore LazyInitializationException генерируется, поэтому я предполагаю, что entitymanager на самом деле имеет сеанс. Но из того, что я понимаю, мой код не создает расширенный контекст персистентности (поскольку я не мог понять, как это сделать программно).CDI (Weld) + DeltaSpike + Converstation
Насколько я знаю, DeltaSpike еще не предлагает ничего для ведения длительных разговоров в JSF. Может ли кто-нибудь предложить метод о том, как реализовать длительные разговоры с CDI, используя Weld + DeltaSpike (желательно на Tomcat со сварным сервлетом)?
@ApplicationScoped
public class EntityManagerProducer {
@Inject
@PersistenceUnitName("myUnit")
private EntityManagerFactory emf;
@Produces
@ConversationScoped
public EntityManager createEntityManager() {
return emf.createEntityManager();
}
public void closeEm(@Disposes EntityManager em) {
em.close();
}
}