我需要项目帮助,因为我不熟悉spring @transactional注释。问题是为什么我的应用程序挂起使用@transactional方法,但没有它挂起。另外,我如何解决这个问题,以便交易成功。
场景是我的应用程序设置如下:
以下代码是示例代码段
@Autowired
JdbcTemplate template;
@Transactional(rollbackFor = Exception.class)
public final void upsertData(){
insertTable1(); // insert query to insert in table 1
addReferencingData(); // was just called to update table but returns something which is not used;
//Hangs up before getting to next statement
somePreparedStatmentSQLmergeTable1(mergesql,template); // query to merge in table 1
}
public final String addReferencingData(){
updateTableA(); // update query to update values in table A
updateTableB(); // update query to update values in table B
mergeTable1(); // merge query to update or insert in table 1
return someString;
}
public static void somePreparedStatmentSQLmergeTable1(sql,template){
template.batchUpdate(sql, new BatchPreparedStatementSetter() {
public void setValues(final PreparedStatement ps, final int i){
// setting parameters to be used
}
public int getBatchSize(){
// returns size of data's
}
}
}
还在我的application-context.xml文件中添加了默认的事务管理器.Transaction已基于日志工作。只有在这种特定方法中它才起作用。
更新了一些信息以便更清楚。