Уровень изоляции транзакций JPA и MySQL
У меня есть собственный запрос, который выполняет пакетную вставку в базу данных MySQL:
String sql = "insert into t1 (a, b) select x, y from t2 where x = 'foo'";
EntityTransaction tx = entityManager.getTransaction();
try {
tx.begin();
int rowCount = entityManager.createNativeQuery(sql).executeUpdate();
tx.commit();
return rowCount;
}
catch(Exception ex) {
tx.rollback();
log.error(...);
}
Этот запрос вызывает тупик: пока он читает изt2
сinsert .. select
другой процесс пытается вставить строку вt2
.
Меня не волнует последовательность чтения изt2
при выполненииinsert .. select
и хотите установить уровень изоляции транзакцииREAD_UNCOMMITTED.
Как мне установить его в JPA?
Обновить
В итоге я создал обычное соединение SQL для этого случая, так как мне показалось, что это самый простой вариант. Спасибо всем!