Является ли поддержка @Transactional для NamedParameterTemplate.batchUpdate - PullRequest
2 голосов
/ 18 июня 2019

Является ли @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

}

1 Ответ

2 голосов
/ 18 июня 2019

NamedParameterTemplate - это просто абстракция вокруг Jdbc. Весной за управление транзакциями отвечает Менеджер транзакций, не то, что вы не можете сделать это через простой JDBC, но это весенний путь. Spring использует AOP для проверки аннотированных методов и делегирует управление транзакциями. Но эта роль отделена от NamedParameterTemplate.

Таким образом, вы можете свободно использовать его и комментировать ваши методы, если они находятся в компоненте / бине, управляемом Spring, с помощью @ Transactional

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...