Je reçois cette exception d'Hibernate
atelier de construction
13: 32: 09,937 INFO SessionFactoryObjectFactory: 105 - Fabrique non liée à JNDI, aucun nom JNDI configuré
Exception dans le thread "principal" org.hibernate.HibernateException: la base de données n'a renvoyé aucune valeur d'identité générée de manière native.
Qu'est-ce que cela signifie et comment puis-je le résoudre? Merci!
Je pense que cela signifie que vous essayez d'utiliser le générateur d'identifiant IDENTITY avec une colonne de table mal configurée. Il devrait s'agir d'une colonne auto_increment pour que le générateur IDENTITY fonctionne. Sinon, la base de données ne renvoie aucun identifiant généré.
Nous devons auto_increment
la colonne id
de la table en utilisant la requête ci-dessous
ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
Et résoudre ce problème est aussi simple que de vous assurer que la colonne de clé primaire de la table sur laquelle vous travaillez est configurée pour l'incrémentation automatique.
Lors de la création de la table dans la base de données, vous avez peut-être oublié de donner Autoincrement à cette colonne.
Ou
Vous avez oublié d'annoter dans la classe Java en tant que "Valeur générée"
Cela fonctionnera bien
Dans un tel scénario, vous n'avez pas besoin de créer la table manuellement. Il créera par défaut en utilisant hibernate . Make change ou ajoutera dans hibernate.cfg.xml >> le champ "hibernate.hbm2ddl.auto" défini sur "update".
Une autre façon de résoudre ce problème consiste à définir Auto_Increment pour la colonne ID de la table.