Je n'ai pas pu obtenir plus de sortie de console (pour vous aider à déboguer) à partir de Hibernate malgré la définition de quelques propriétés dans le fichier J'ai aussi essayé de jouer avec Le contenu du Je ne suis pas sûr à 100% si cela a réellement un effet, cependant. Ce fichier XML est dans le projet Eclipse qui gère ma base de données, mais ne semble pas être dans le répertoire de déploiement JBoss. P> EDIT 2: STRUT> Ceci est définitivement déployé comme un har. Cela dit, je suis sûr que j'ai besoin de mais quand je fais la construction de fourmis avec xml incorrectement formé dans la hibernate-service.xml fichier, il n'échoue pas. On dirait que d'obtenir de l'hibernation pour produire des déclarations SQL devrait (si tout est configuré correctement) s'en occuper entièrement - cela signifie-t-il que les paramètres de log4j.properties gagnaient 't faire une différence ici? - parce que cela em> fait em> modifie la sortie lors de l'exécution de la fourmi. p> EDIT 3: strong> Après avoir coulé dans d'autres problèmes étranges avec mes données hibernate.cfg.xml code>. Par exemple, l'ajout de la ligne
log4j.properties code> paramètre type
log4j.logger.org.hibernate = débogage code> - sans chance. Qu'est-ce que je manque? P>
hibernate.cfg.xml code> - je me rappelle avoir des problèmes lorsqu'un document de mappage a été omis comme une entrée dans ce fichier. Je pense que le plan est généré à l'aide de fourmi - il y a une cible pour cela dans le fichier build.xml: p>
HAR < / Code>, j'ai supprimé le fichier HUR entièrement et reconstruisez-le à l'aide de la cible
HAR CODE> Build Build. Tout à coup tout travaille! Merci à Chessplay pour sa superficielle géniale. Je ne peux pas dire que je sais exactement ce qui l'a fait à la fin, mais je préférerais reconnaître ses efforts que d'écrire et d'accepter ma propre réponse; Mes excuses si vous n'êtes pas un "il" " p> p>
3 Réponses :
Le nom de la propriété est correcte hibernate.show_sql et cela fonctionne certainement. p>
Assurez-vous que votre Mise à jour strong>: Je vais mettre à jour la réponse plutôt que de continuer à ajouter des commentaires.
Vous avez besoin de vous assurer que votre hibernate.cfg.xml code> est la bonne et il devient ramassé; en va de même pour votre
log4j.properties de fichier code>. Je sais que ceux qui semblent comme des suggestions stupides, mais ils représentent 98% des problèmes « manque de syslog ». P>
Mise en veille prolongée-service.xml code> est repris par JBoss. Le moyen facile de vérifier est d'ajouter une erreur de syntaxe à elle (comme Omettre une accolade de fermeture sur un élément) et voir si JBoss explose lors du redémarrage :-) Il doit être emballé dans
har code> et déployé en tant que une partie de votre processus de construction, donc si vous vous rendez compte qu'il est pas em> être repris par JBoss, qui est l'endroit à regarder. Je supprimerais les paramètres contradictoires dans
hibernate.cfg.xml code> (par exemple tout ce que vous spécifiez comme des attributs MBean ne doivent pas être reproduites dans
hibernate.cfg.xml code>). Pour cette question, avez-vous besoin de
hibernate.cfg.xml code>? Si déployé en tant que
HAR code>, vos correspondances doivent être scannés automatiquement / téléchargé. P>
Dois-je aussi définir le niveau de journal dans log4j.properties? - J'ai trouvé au début je travaillais avec les mauvaises copies de ces deux fichiers, mais je suis passé à l'outillage avec les copies correctes avant que je demande ici.
Réglage hibernate.show_sql sur true doit imprimer SQL sur la console irrégulier i> de la configuration de la journalisation. Vous pouvez également définir org.hibernate.sql code> niveau de journal pour déboguer pour le diriger vers le fichier journal de votre choix (comme configuré dans votre configuration de journalisation)
J'ai changé la ligne vers
Vous devrez fournir plus d'informations, puis. Comment configurez-vous la session de Hibernate? Au printemps? Ou autonome? Pouvez-vous poster votre configuration?
Pas de problème - j'ai pensé que ce serait le cas. Je ne suis pas sûr, puisque je n'ai pas fait le travail initial de tout définir. Je suis sûr que cela n'utilise pas le printemps. À quoi ressemblerait une configuration autonome? Les documents Hibernate n'ont pas été très utiles ici.
Je pense que cela obtient la séanceFactory de JNDI.
Votre code peut être une usine de session de JNDI; Mais le principal point d'intérêt ici est où SéditionFactory est mis en place. Est-ce que le tout fonctionne dans un serveur d'applications (à en juger par JNDI)? Si vous n'utilisez pas le printemps, vous devez avoir un hibernate.cfg.xml ou hibernate.properties quelque part dans la session de classePath Plus SéditionFactory est initialisé quelque part dans le code via la méthode BuildSeSessFactory ().
Le tout est en cours d'exécution dans JBoss. J'ai le hibernate.cfg.xml dans le path de classe de classe que je peux dire (c'est dans le répertoire racine du dossier source du projet Eclipse dédié à l'interaction de la base de données).
Hibernate est configuré en tant que service via un hibernate Mbean selon docs.jboss. org / jbossas / jboss4guide / r4 / html / ch13.html .
Ah ... c'est une histoire différente alors. JBoss (non contrairement à la source) utilise des propriétés de haricot pour spécifier les paramètres Hibernate. Ainsi, vous devez définir l'attribut montreqlenabled code> sur votre MBean à true pour imprimer sql à la console (E.G.
Voir mon édition. Je mets cet attribut dans le Mbean (bien que je ne suis toujours pas sûr de la façon dont JBoss le voit jamais) mais toujours pas de chance.
Serait-il utile de voir la sortie de la console lors du démarrage de JBoss?
J'utilise simplement le fichier log4j.properties pour enregistrer les relevés hibernate. Pour les instructions SQL, la propriété Voici le fichier log4j.properties que j'utilise: p>
Pour une raison quelconque, mon fichier log4j.properties code> ne semble pas affecter la sortie de la console lorsque JBoss est en cours d'exécution. Cependant, il semble contrôler le niveau de sortie lorsque j'exécute mon script de construction de fourmis.
Faites également shure que vous utilisez la configuration de log4J correcte.
Lorsque vous courez dans JBoss (vous le faites, non?), vous configurez log4j-connectage dans Il existe deux appendeurs par défaut; Vous devez également ajuster la priorité de journalisation de Hibernate en ajoutant une catégorie: p> $ jboss_home / serveur /
Fichier CODE> Écrit sur
LOG / SERVER.LOG CODE> ET
CONSOLE CODE> TO
STDOUT CODE> (parfois redirigé
LOG / CONSOLE. Journal code>). Ajustez le seuil sur l'appendend à
Débogou code> dans le fichier ou en définissant le systèmeProperty
jboss.server.log.threshold code> (dépend de la version de JBoss que vous utilisez). p>
hibernate.show_sql code> (ou,
montreqlenableabled code> dans jboss Mbean) est indépendant de la configuration de la journalisation; Si activé, il imprimera toujours SQL à la console. Réglage
org.hibernate.sql = débogage code> dans la configuration de l'enregistreur approprié fera de même, mais à toute sortie configurée pour l'enregistreur. Les deux méthodes sont indépendantes les unes des autres (par exemple, si vous définissez les deux que vous obtiendrez SQL imprimé deux fois)