По умолчанию CDI не поддерживает транзакции, управляемые контейнером.Однако, используя модуль Seam 3 Persistence, вы можете добавить поддержку CMT в свое приложение.
Документация по Seam Persistence находится здесь -> Ссылка
Сначала добавьтеСохранение шва в вашем проекте:
<dependency>
<groupId>org.jboss.seam.persistence</groupId>
<artifactId>seam-persistence-api</artifactId>
<version>${seam.persistence.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.seam.persistence</groupId>
<artifactId>seam-persistence-impl</artifactId>
<version>${seam.persistence.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.seam.solder</groupId>
<artifactId>seam-solder</artifactId>
<version>${seam.solder.version}</version>
</dependency>
Затем включите декларативное управление транзакциями в вашем beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://docs.jboss.org/cdi/beans_1_0.xsd">
<interceptors>
<class>org.jboss.seam.persistence.transaction.TransactionInterceptor</class>
</interceptors>
</beans>
Теперь, согласно документации, выЯ должен иметь возможность использовать аннотации @TransactionAttribute с вашим управляемым компонентом, как если бы вы использовали EJB, однако я не смог заставить это работать.Однако вместо этого вы можете использовать аннотацию @ Transactional для вашего класса или метода.Это эквивалент Стойкости шва и отлично работает.
Надеюсь, это поможет.Любые вопросы, просто спросите.