[PostgreSQL] Utiliser generatedKeys
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:
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:
Statement.RETURN_GENERATED_KEYS
par
Code:
ResultSet.TYPE_SCROLL_INSENSITIVE
et par
Code:
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