@Transactional 是否支持 NamedParameterTemplate.batchUpdate
Is @Transactional support for NamedParameterTemplate.batchUpdate
@Transactional 是否支持 NamedParameterTemplate.batchUpdate?
如果在批量执行过程中出现问题,是否会按预期回滚?就个人而言,我没有经历过。这就是我问的原因。
有没有文档可以检查@Transactional支持的方法。
public class JdbcActorDao implements ActorDao {
private NamedParameterTemplate namedParameterJdbcTemplate;
public void setDataSource(DataSource dataSource) {
this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
}
@Transactional
public int[] batchUpdate(List<Actor> actors) {
return this.namedParameterJdbcTemplate.batchUpdate(
"update t_actor set first_name = :firstName, last_name = :lastName where id = :id",
SqlParameterSourceUtils.createBatch(actors));
}
// ... additional methods
}
NamedParameterTemplate 只是围绕 Jdbc 的抽象。在 spring 中,事务管理器负责管理事务,并不是说你不能通过普通的 JDBC 来做到这一点,但这是 spring 的方式。 Spring 在内部使用 AOP 检查带注释的方法并委托其事务管理。但此角色与 NamedParameterTemplate 是分开的。
因此您可以自由使用它并注释您的方法,只要它们在 Spring 管理的 component/bean 中并带有 @Transactional
@Transactional 是否支持 NamedParameterTemplate.batchUpdate? 如果在批量执行过程中出现问题,是否会按预期回滚?就个人而言,我没有经历过。这就是我问的原因。 有没有文档可以检查@Transactional支持的方法。
public class JdbcActorDao implements ActorDao {
private NamedParameterTemplate namedParameterJdbcTemplate;
public void setDataSource(DataSource dataSource) {
this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
}
@Transactional
public int[] batchUpdate(List<Actor> actors) {
return this.namedParameterJdbcTemplate.batchUpdate(
"update t_actor set first_name = :firstName, last_name = :lastName where id = :id",
SqlParameterSourceUtils.createBatch(actors));
}
// ... additional methods
}
NamedParameterTemplate 只是围绕 Jdbc 的抽象。在 spring 中,事务管理器负责管理事务,并不是说你不能通过普通的 JDBC 来做到这一点,但这是 spring 的方式。 Spring 在内部使用 AOP 检查带注释的方法并委托其事务管理。但此角色与 NamedParameterTemplate 是分开的。
因此您可以自由使用它并注释您的方法,只要它们在 Spring 管理的 component/bean 中并带有 @Transactional