Пакетный запрос отката драйвера Postgresql JDBC при возникновении ошибки - PullRequest
0 голосов
/ 25 июня 2018

Я использую драйвер JDBC postgresql. При отправке пакетного запроса в базу данных драйвер postgres откатывает все, когда возникает ошибка, и результатом является массив только с Statement.Execute_FAILED.

 try (Connection connection = getConnection();
        PreparedStatement stmt = connection.prepareStatement(UPSERT_THESIS)) {
        for (SomeObject d : data) {
            stmt.setString(1, d.getId());
            stmt.setString(2, d.getName());
            stmt.addBatch();
        }
        int[] result = stmt.executeBatch();}

Я получил результат [-3, -3, -3]. Не имеет значения, включен ли автокоммит.

При использовании других баз данных, таких как Mysql, откат не выполняется, каждый оператор обрабатывается и сохраняется в базе данных, кроме той, где происходит ошибка. Итак, я получил массив результатов со смешанными Statement.Success_NOINFO и Statement.Execute_FAILED ([1,1, -3,1]).

Это postgres jdbc нормальное поведение? Или я что-то здесь не так делаю?

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