Bonjour,

je suis en train de migrer ma base de données et après plusieurs recherches et essais de mon coté, je m'en remet à vous.
Comme dit dans le titre, je passe à PostgreSQL et je souhaite récupérer les clés générées sur une requêtes INSERT.

Voici le code "basique" que j'utilisais avec MySQL

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
String requete = "INSERT INTO GroupeTest (titre, scenario) VALUES (?, ?)";
            PreparedStatement pstmt = getConnexion().prepareStatement(requete,
                   Statement.RETURN_GENERATED_KEYS);
            pstmt.setString(1, groupeTest.getTitre());
            pstmt.setInt(2, Integer.parseInt(contenantId.substring(1)));
            pstmt.executeUpdate();
            ResultSet generatedKeys = pstmt.getGeneratedKeys();
            if (generatedKeys.first()) {
                groupeTest.setId(generatedKeys.getInt(1));
            }
Le plantage se fait au niveau du generatedKeys.first() où PostgreSQL me renvoie L'opération nécessite un scrollable ResultSet, mais ce ResultSet est FORWARD_ONLY. J'ai alors tenté de remplacé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Statement.RETURN_GENERATED_KEYS
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ResultSet.TYPE_SCROLL_INSENSITIVE
et par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ResultSet.TYPE_SCROLL_SENSITIVE
. J'obtiens la même erreur. J'en déduis alors que le résultSet extrait du preparedStatement n'est pas Scrollable.

Comment faire ?
Peut-on configurer PostgresSQL pour rendre le comportement similaire à MySQL sachant que je parcours la ResultSet de façon séquentielle ?

Merci d'avance