我正在使用不带“ transactionManager”的Spring JdbcTemplate,因为我大多选择这样做。
当我尝试从JUnit调用选择查询时,它可以工作,但是当我尝试调用“更新”时,它冻结测试(没有连接超时,什么也没有,只是在等待)。
我看过没有任何transactionManager的jdbcTemplates插入/更新示例,但这可能是这里的问题吗?
public void insert(String param1, String param2) {
String sql = "UPDATE MYTABLE SET name = :param1 where first_name = :param2";
NamedParameterJdbcTemplate npJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
SqlParameterSource namedParameters = new MapSqlParameterSource().addValue("param1", param1).addValue("param2", param2);
npJdbcTemplate.update(sql, namedParameters);
}
答案 0 :(得分:0)
这里的问题是我在SQL客户端(Oracle SQL开发人员)的同一行上传递了相同的更新查询,但尚未在此客户端中提交。
我的JUnit已停滞了12个小时,在我向SQL开发人员提交查询后,更新立即发生在JUnit中。
与应用程序中的事务管理或数据源的自动提交状态无关。