Comment résoudre « ID temporaire n'a pas été remplacé lors de la validation » à Cayenne

StackOverflow https://stackoverflow.com/questions/4784929

  •  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?

Était-ce utile?

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
scroll top