我使用的是没有“transactionManager”的 Spring JdbcTemplate,因为我主要选择做。
当我尝试从 JUnit 调用选择查询时,它可以工作,但是当我尝试调用“更新”时,它会冻结测试(没有连接超时,什么也没有,只是等待)。
我见过 jdbcTemplates 插入/更新而没有任何 transactionManager 的示例,但这可能是这里的问题吗?
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);
}
这里的问题是我在 SQL 客户端(Oracle SQL 开发人员)的同一行上传递了相同的更新查询,但尚未在此客户端中提交。
我的 JUnit 已经停滞了 12 个小时,在我在 SQL Developer 中提交查询后,JUnit 中就发生了更新。
它与应用程序中的事务管理或数据源的自动提交状态无关。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)