Мой опыт в основном связан со швом-2, но здесь он должен быть в равной степени применим.
Разговор и сеанс JPA разделены в шве по той простой причине, что окончание разговора может не привести к сохранению сущности.
Например, действие отмены в длительном диалоге завершит разговор (так как больше нет необходимости поддерживать разговор)
Учитывая, что вы выполняете откат для отмены вваш пример, также может показаться логичным, что вам нужно будет вызвать сброс, как предложено @ user1187037 (теоретически коммит, но я не думаю, что это разрешено)
Я думаю, что, возможно, была конфигурация, которую вы могли быустановить так, чтобы он заканчивался в конце разговора, но я могу ошибаться.
В любом случае http://javalangblog.blogspot.co.uk/2010/04/flush-mode-conversation.html, кажется, предлагает решение
Надеюсь, что поможет.
РЕДАКТИРОВАТЬ: вы можете настроить режим сброса на разговор, используя xml
<begin-conversation join="true" flush-mode="COMMIT" />
и используя аннотации
@Begin(flushMode=COMMIT)
Имейте в виду, что разговор может @ End без явного определения.Если пользователь проходит через диалог, вносит изменения в сущности и затем прекращает диалог, он автоматически закрывается после истечения времени ожидания.Если я правильно помню, это приведет к тому, что любые изменения будут зафиксированы в вышеуказанном случае.
Ссылки:
http://docs.jboss.org/seam/3/persistence/3.0.0.Alpha1/reference/en-US/html_single/#d0e249 http://docs.jboss.org/seam/3/latest/api/org/jboss/seam/persistence/FlushModeType.html