Встречается на собеседованиях • сегодня
Есть ли операции, которые нельзя запустить в транзакциях
Некоторые операции в Java (особенно при работе с JDBC) нельзя выполнять внутри транзакции:
- DDL-операции (CREATE, ALTER, DROP) - многие СУБД автоматически завершают текущую транзакцию перед их выполнением
- Управление соединением (commit, rollback, setAutoCommit)
- Некоторые операции с ResultSet (при изменении уровня изоляции)
Пример:
java
Connection conn = dataSource.getConnection();
try {
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
stmt.executeUpdate("CREATE TABLE temp_table (id INT)"); // Завершит транзакцию
stmt.executeUpdate("INSERT INTO users VALUES (1, 'John')"); // Будет выполнено вне транзакции
conn.commit(); // Не повлияет на предыдущие операции
} catch (SQLException e) {
conn.rollback();
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы