spring事务回滚失败,通过自定义PreparedStatementCreator获取自增长id

AnyLine 发布于 2016/01/28 13:36
阅读 561
收藏 0

service是这样实现的

@Autowired(required=false)
private JdbcTemplate jdbc;
@Transactional
public void save(){
final String sql = "insert into member(nm) values('test')";
KeyHolder key=new GeneratedKeyHolder();
try{
jdbc.update(
           new PreparedStatementCreator() {
            @Transactional
               public PreparedStatement createPreparedStatement(Connection con) throws SQLException
               {
                   PreparedStatement ps = jdbc.getDataSource().getConnection().prepareStatement(sql.toString(),new String[] {"CD"});


                   return ps;
               }
           }, key);

int i = 1/0;
}catch(Exception e){
throw new SQLUpdateException("插入异常:"+e);
}
}


异常抛出了,但没有回滚.

直接 用jdbc.update(sql);

可以回滚

加载中
返回顶部
顶部