CDI @ Transactional.rollbackOn不起作用

时间:2014-08-06 16:56:21

标签: java cdi transactional

我使用以下来源试用@Transactional

@Transactional(value = TxType.REQUIRED, rollbackOn = { SQLException.class })
public void insert_Required() throws Exception {
    insert("INSERT_REQUIRED");
    int i = 1;
    if (i == 1) {
        throw new SQLException("error");
    }
    return;
}

private void insert(final String description) throws SQLException {
    PreparedStatement pst = connection.prepareStatement(INSERT_STMT);
    pst.setString(1, description);
    pst.execute();
}

但不幸的是,记录被插入并提交而不是回滚事务。有什么问题?

1 个答案:

答案 0 :(得分:1)

检查spring特定xml中的数据源配置中AUTO_COMMIT是否设置为false。