Graal 2.4 et hibernate4 erreurs à l'exécution de l'app
J'ai mis à jour une application pour le Graal 2.4.0, et je suis en utilisant le hibernate4 plugin. Lors de l'exécution d'exécution d'application l'erreur des exemples ci-dessous sont générés pour chaque domaine de la classe à l'aide de la base de données en mémoire. J'ai lu plusieurs posts sur le hibernate forums que les erreurs ne sont pas graves. C'est tout simplement l'enregistrement d'une erreur à cause la table, c'est d'essayer de drop n'existe pas encore.
2014-Mai-24 13:25:26,788 ERREUR [localhost-startStop-1] org.mise en veille prolongée.outil de.hbm2ddl.SchemaExport - SchemaExport.java 425 - HHH000389: Échec: alter table user_role drop constraint FK_apcc8lxk2xnug8377fatvbn04 si il existe
2014-Mai-24 13:25:26,789 ERREUR [localhost-startStop-1] org.mise en veille prolongée.outil de.hbm2ddl.SchemaExport - SchemaExport.java 426 - Table "USER_ROLE" n'est pas trouvée; instruction SQL:
alter table user_role drop constraint FK_apcc8lxk2xnug8377fatvbn04 s'il existe [42102-173]
Personne ne sait comment arrêter la journalisation de bruit?
- êtes-vous à l'aide de spring security plugin?
- Oui, je suis de l'utiliser.
Vous devez vous connecter pour publier un commentaire.
C'est un bug, il semble que vous pouvez le laisser comme ça et ne causera pas de problème, mais si vous ne voulez pas voir le message, voici quelques solutions: (Edit: l'Option 2 semble mieux fonctionner (voir les commentaires dans ce post))
1.- singleSession de configuration de source de données.groovy
https://jira.grails.org/browse/GRAILS-11198
2.- substitution de la H2 dialecte:
Échec: alter table XXX drop constraint YYY dans Hibernate/JPA/HSQLDB autonome
dataSource.dialect = com.mypackage.ImprovedH2Dialect
pour vous source de données.groovydialect = "com.myPackage.ImprovedH2Dialect"
comme une propriété dedataSource{}
dansDataSource.groovy
- Merci!La Solution @Luis fournis ci-dessus fonctionne pour MYSQL aussi. Juste étendre MySQL5InnoDBDialect plutôt comme ci-dessous:
Puis dans votre source de données fichier modifiez la ligne suivante:
à
Juste mis
dbCreate="update"
, et les erreurs disparaissent immédiatement.Le problème est que GORM (hibernate) est d'essayer de supprimer des tables dans le H2 DB qui n'ont jamais été créé parce que la DB est créé de nouveau chaque fois que vous exécutez l'application. Malheureusement, dbCreate est configuré pour créer drop par défaut, ce qui n'a vraiment pas de sens pour une base de données qui est créé à la volée lors de l'exécution.
create
parce quecreate
détruit les données précédentes. Au cours du développement, j'ai charger les données de test avecBootStrap.groovy
. Lorsque je modifie un objet de domaine alors que le serveur est en cours d'exécution, GORM actualise le schéma après la classe est recompilé et rechargé. Qui supprime toutes les données de test que j'ai charger avec bootstrap. Donc je finis par avoir à redémarrer l'application, ce qui ralentit moi vers le bas et tue mon flux.