基本設定はすべて問題なく、トランザクションを試し始めました。Struts + Spring+Hibernateアノテーショントランザクションマネージャー。これはアクションのサンプルコードであり、サービスクラスを呼び出します。
userService.addUser();
サービスクラスのaddUser()
メソッドは次のとおりです。
@Transactional(value="deu" )
public void addUser() {
userDao.addUser();
this.addUser2();
}
まず、addUser
userDaoを呼び出しました。これにより、ユーザーが挿入されます。次に、addUser2
このサービスクラスの別のメソッドを呼び出しました。
@Transactional(value="deu" , propagation=Propagation.REQUIRES_NEW )
public void addUser2() {
//should be a new transaction and will not affect the previous one.
//this one will fail but should not affect the previous one.
userDao.addUserFail();
}
そして、これはヌルPKのために失敗します。2番目の呼び出し(addUser2
)は失敗すると思いますが、前の呼び出しには影響しません。ただし、ユーザーは挿入されません。
電話するだけの場合:
@Transactional(value="deu" )
public void addUser() {
userDao.addUser();
//this.addUser2();
}
それは機能しています。つまり、データベースなどの基本設定は間違っていません。
何か案が?