Comment résoudre « ID temporaire n'a pas été remplacé lors de la validation » à Cayenne
-
24-10-2019 - |
Question
Lorsque des modifications à un commis contexte Cayenne Apache, je reçois une exception comme ce qui suit.
org.apache.cayenne.CayenneRuntimeException: [v.3.0.1 Sep 06 2010 15:09:38]
Temporary ID hasn't been replaced on commit
Pourquoi cette exception se produit?
La solution
Vous essayez de commettre un objet pour lequel Cayenne ne sait pas comment générer un identifiant permanent. Cela se produit généralement lorsque la table sous-jacente n'a pas de clé primaire.
Pour résoudre le problème, effectuez l'une des opérations suivantes.
- Ajoutez une clé primaire à la table sous-jacente, soit une clé de substitution (nouveau produit de la colonne id) ou une clé naturelle (combinaison de colonnes existantes).
- Définissez votre propre identifiant permanent sur l'objet (s) en question en utilisant la méthode
PersistentObject.setObjectID()
.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow