2009-08-28 8 views
2

Lors du démarrage du serveur Jboss, j'obtiens la piletrace suivante. Je me demande pourquoi JPA essaie de modifier les tables qui semblent être bien et comment faire passer ces messages d'erreur. MerciErreur de mise à jour du schéma HIbernate

2009-08-03 11: 28: 49683 ERREUR [org.hibernate.tool.hbm2ddl.SchemaUpdate] non retenus: modifier BDPARAMS table ajouter contrainte FK61733C48FA34BFDC clé étrangère (ITEMID) Références RTELEMENT 2009-08-03 11 : 28: 49,683 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] Échec: alter table BDPARAMS ajouter une contrainte FK61733C48FA34BFDC clé étrangère (ITEMID) références RTELEMENT 2009-08-03 11: 28: 49,683 ERROR [org.hibernate.tool. hbm2ddl.SchemaUpdate] ORA-02275: une telle contrainte référentielle existe déjà dans la table

2009-08-03 11: 28: 49,683 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] ORA-02275: un tel référentiel la contrainte existe déjà dans la table

2009-08-03 11: 28: 49745 ERREUR [org.hibernate.tool.hbm2ddl.SchemaUpdate] Unsuccessful: alter table contentItem ajouter contrainte FK692B5EEC44F32395 clé étrangère références (de id_parent) CONTENTLOCATION 2009-08-03 11:28 : 49,745 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] Échec: alter table CONTENUTE ajouter une contrainte FK692B5EEC44F32395 clé étrangère (parent_id) références CONTENTLOCATION 2009-08-03 11: 28: 49,745 ERROR [org.hibernate.tool.hbm2ddl. SchemaUpdate] ORA-02275: une telle contrainte référentielle existe déjà dans la table

+0

Quels SGBDR utilisez-vous? Quel est le paramètre de votre valeur hibernate.hbm2ddl.auto? – Daff

+0

J'utilise Oracle 11 G et j'utilise la mise à jour pour hibernate.hbm2ddl.auto. FYI même s'il affiche ces erreurs, l'application est correctement déployée et fonctionne correctement. Mais je veux corriger cette erreur. –

Répondre

1

J'ai eu des erreurs similaires et les problèmes proviennent d'inexactitudes dans l'extraction de métadonnées par le sous-système jdbc. Les méta-données reviennent pour dire hibernate que la contrainte n'est pas là mais en réalité ce n'est pas le cas - cela pourrait être pour un certain nombre de raisons. Je suggère d'essayer un dbms différent aussi peut-être que le problème est due aux différences d'utilisateur entre le courant et l'utilisateur qui a généré la table. Il pourrait aussi y avoir quelque chose de mal avec votre cartographie. Mais en fin de compte, le seul moyen infaillible de résoudre ce problème est de désactiver la synchronisation de schéma au démarrage.

1

Dans mon cas, les messages d'erreur sont apparus après que j'ai changé la structure du paquet java dans mon projet. Je pense que Hibernate était un peu confus à ce sujet.

J'ai eu des erreurs similaires (alt table ... ajouter une contrainte) et j'utilise Oracle DB 10g. Pour moi, la solution la plus simple consistait à exporter les données des tables concernées (insertions), à les supprimer, à démarrer l'application qui crée à nouveau les tables, puis à réimporter les données de la table. Alors Hibernate crée de nouveau les tables par lui-même et les messages d'erreur sont partis!

1

J'ai eu la même erreur mais je l'ai réparée en quelques étapes simples.

Dump la base de données actuelle Mysqldump sur current.sql changement hibernate.cfg pour créer il recrée la table de base de données Dump la nouvelle base de données sur Mysqldump new.sql

Copiez le tableau créer une nouvelle base de données actuelle à de Réinsérer mysql dans current.sql

4

dans mon cas, le problème résolu quand j'ai ajouté le nom DEFAULT_SCHEMA au fichier de configuration Hibernate:

<property name="hibernate.default_schema" value="db_default_schema_name" /> 

Plus précisément, dans Play framework 2.4, j'ai ajouté la ligne ci-dessus au fichier conf\META-INF\persistence.xml.Version Hibernate utilisée: 4.3.11

Questions connexes