2016-08-24 8 views
0

私のプロジェクトにJBoss EAPを使用したデータソース。トランザクションエラーJTA DATASOURCE JPA CDI

オブジェクトを永続化しようとすると何らかの理由で以下のエラーが表示されます。

JBAS011469:トランザクションはこの操作を実行する必要がある(どちらか トランザクションまたは拡張永続コンテキストを使用): javax.faces.FacesException:#{back.salvarを} javax.persistence.TransactionRequiredException:JBAS011469: 取引はあり@Transactional方法があるが、この方法は、エラーを起動

( トランザクションまたは拡張永続コンテキストを使用するか)この操作を実行するために必要とされます。 誰でも?

@Stateless 
@Named 
public class BaseDao implements Serializable 
{ 
    private static final long serialVersionUID = -8993128837557701804L; 

    @PersistenceContext 
    protected EntityManager manager; 

    @Transactional 
    public void persist(Object object) 
    { 
     manager.persist(object); 
    } 

} 

PS:すべてのオブジェクトは、CDIを注射するあなたのCDI BeanがEJBステートレスセッションBeanであるため、管理者は、オブジェクトクラスorg.jboss.as.jpa.container.TransactionScopedEntityManager

+0

あなたの 'persistence.xml'と'#{back.salver} 'の実装を含めてください。 –

答えて

1

を注入され、 EJBにはデフォルトでコンテナ管理トランザクション(CMT)があるので、ここでは@Transactionalアノテーションを使用する必要はありません。

@Transactionalは、CDIマネージドBean(つまりPOJO)上でトランザクショントランザクションを管理するのに便利です。

関連する問題