2010-06-02 12 views
2

J'essaie de conserver un objet dans la base de données en utilisant Cayenne Entity Manager. Et malheureusement, j'obtiens l'erreur suivante:problème avec Cayenne Entity Manager

org.apache.cayenne.CayenneRuntimeException: [v.3.0 Apr 26 2010 09:59:17] Commit Exception 

Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'myDatabase.auto_pk_support' doesn't exist 

Une idée comment je pourrais résoudre ce problème? Merci.

Répondre

4

Dans le cas de votre erreur, il me semble que vous choisissez dans Cayenne Modeler la "PK Generation Strategy" "par défaut" (Cliquez sur votre DB Entities pour voir la comobox avec cette option). Cela signifie que Cayenne s'attend à ce qu'une table "auto_pk_support" remplie soit présente dans votre schéma (afin de pouvoir générer et garder une trace des clés primaires). Cayenne Modeler peut générer ce tableau + contenu pour vous: dans le menu Outils, sélectionnez «Générer le schéma de base de données», sélectionnez la bonne connexion et dans la boîte de dialogue suivante, sélectionnez uniquement la case «Créer un support PK»: - vous verrez le SQL nécessaire pour le générer - vous pouvez le copier et le coller dans votre outil SQL favori, ou laisser Cayenne Modeler l'exécuter. Comme vous utilisez MySQL, vous avez bien sûr aussi d'autres options de génération PK (celle ci-dessus est la classique/par défaut et fonctionne sur n'importe quelle base de données - mais nécessite une table supplémentaire).

Je suggère de consulter le Cayenne Modeler documentation, ou mieux le entire cayenne documentation (car c'est très bon) car tous les éléments ci-dessus sont très bien expliqués ici.

+0

Merci beaucoup. J'ai eu le problème dans certains de mes cas de test. Je n'ai reçu aucun message d'erreur lors de l'exécution de 'mvn test'. Maintenant ça marche. – High6