How to make transaction roll back when sql failes:
DataSourceTransactionManager transactionmanager = new DataSourceTransactionManager(dataSource);
TransactionTemplate transactionTemplate = new TransactionTemplate(transactionmanager);
String message = transactionTemplate.execute(new TransactionCallback<String>(){
@override
public String doInTransaction(TransactionSatua ts){
If any one of transaction failed in execution, then complete transaction is rolled back. Suppose if deleteRecords() and addrecords()is executed successfully and updateRecords() is failed, then previous two transaction also rolled back.
try
{
deleteRecords();
addRecords("someinput");
UpdateRecords("someInput");
} catch(Exception e){
ts.setRollbackOnly();
return "sql failed. so whole transaction is rolledback";
}
}
DataSourceTransactionManager transactionmanager = new DataSourceTransactionManager(dataSource);
TransactionTemplate transactionTemplate = new TransactionTemplate(transactionmanager);
String message = transactionTemplate.execute(new TransactionCallback<String>(){
@override
public String doInTransaction(TransactionSatua ts){
If any one of transaction failed in execution, then complete transaction is rolled back. Suppose if deleteRecords() and addrecords()is executed successfully and updateRecords() is failed, then previous two transaction also rolled back.
try
{
deleteRecords();
addRecords("someinput");
UpdateRecords("someInput");
} catch(Exception e){
ts.setRollbackOnly();
return "sql failed. so whole transaction is rolledback";
}
}