Bonjour,
Quelqu'un saurait-il comment on peux gérer en JPA (ou à defaut en hibernate), une table dont les primary key sont créées par un trigger en mysql?
En Oracle, c'est facile, on crée le trigger, on mappe la primary key avec un genérateur "identity" et JPA récupère sans problème la clé. Je pense qu'en interne ça passer par un select du ROWID mais bon.
En mysql, je n'arrive pas à créer ça. Pour des raisons obscures, hibernate se plaint que le serveur n'as pas généré de valeur pour la colonne id. Pourtant, quand je vais en ligne de commande dans la table et que j'exécute la même requête que hibernate (le insert), ça se passe sans soucis et l'id est bien généré par le trigger. On dirait que le "IDENTITY" avec le dialecte mysql ne fonctionne qu'exclusivement avec les auto increment, ce qui ne m'arrange pas. J'ai contourné pour le moment le problème avec un générateur custom qui va appeler la même procédure que le trigger et mettre la valeur dans l'id avant de faire le create mais bon, ça nécessite un aller-retour pour généré chaque id, ce qui n'est pas génial.
Quelqu'un aurait-il une solution?
Partager