PSQLException Возврат автоматически сгенерированных ключей поддерживается только для серверов 8.2 и новее - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь сделать Вставку в таблицу и получить автоматически сгенерированный Первичный ключ

    PreparedStatement pstm = dbcon.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

    pstm.setDate(1, sqlDate);
    pstm.setInt(2, knr);
    pstm.executeUpdate();
    ResultSet rs = pstm.getGeneratedKeys();

в первой строке. Я получаю следующую ошибку:

org.postgresql.util.PSQLException: Returning autogenerated keys is only supported for 8.2 and later servers.

Iимеют следующую зависимость Maven:

    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.1-901-1.jdbc4</version>
    </dependency>

И когда я использую SELECT VERSION(); в базе данных, я получаю

PostgreSQL 11.4 (Debian 11.4-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit

Так что я не совсем понимаю, почему я не могу получить автоматически сгенерированные ключи?
Я что-то здесь упускаю, потому что из того, что я вижу, я выше Версии 8.2 ?!

Заранее спасибо

1 Ответ

1 голос
/ 10 ноября 2019

К сожалению, управление версиями драйверов PostgreSQL JDBC очень обманчиво.

Этот драйвер

    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.1-901-1.jdbc4</version>
    </dependency>

был выпущен в 2011 году, а идентификатор группы также изменился. Вот список поддерживаемых драйверов JDBC.

https://mvnrepository.com/artifact/org.postgresql/postgresql

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