2017-02-13 7 views
2

DeltaSpikeで@Transactionalを使用するメソッドがありますが、このメソッドの中では、後で例外とは関係なくsave()を呼び出して強制コミットする必要があります。DeltaSpikeで新しいTransacionを強制する

@Transacional 
public void method(){ 
save(myBean); 
throw new MyException("THIS IS NECESSARY"); 
} 

だから私のideiaはこのように、別のtransacionと私の豆を保存するために、別のメソッドを呼び出すです:

@Transacional 
    public void method(){ 
    save(myBean); 
    throw new MyException("THIS IS NECESSARY"); 
    } 

    @Transacional(REQUIRES_NEW) 
    public void saveHere(Object bean){save(bean);} 

しかし、私は保存して、力の後expcetionにDeltaSpikeはこのようなすべてのものを、ロールバックを使用する場合DeltaSpikeには属性REQUIRES_NEWはありません。どうすればいいですか?

答えて

0

私は方法がないと信じています。 JTA 1.2(Part of Java EE 7)を使用していますか?したがって、@javax.transaction.Transactionalを使用することができます。 DeltaSpikeでも動作します。

... 
public @interface Transactional { 
... 

    TxType value() default TxType.REQUIRED; 

    public enum TxType { 
     REQUIRED, 
     REQUIRES_NEW, 
     MANDATORY, 
     SUPPORTS, 
     NOT_SUPPORTED, 
     NEVER 
    } 
} 

私はDeltaSpikeでJTA、ちょうどCDIを使用していないよ@javax.transaction.Transactional(value=TxType.REQUIRES_NEW)

+0

を試してみてください。 – RonaldoLanhellas

+0

Java EE 7またはSpring? jtaの依存関係はもっとjpaに属します。 – jklee

+0

Java EE 7、私はSpringを使用していません。 – RonaldoLanhellas

関連する問題