Ich konnte keine Console-Ausgabe (um Debugging zu helfen) aus Hibernate bekommen, obwohl ich einige Eigenschaften in der Datei hibernate.cfg.xml
eingestellt habe. Wenn Sie beispielsweise die Zeile <property name="show_sql">true</property>
hinzufügen, werden in der Tat keine SQL-Anweisungen in der Konsole angezeigt.Wie bekomme ich mehr Debug-Meldungen von Hibernate?
Ich habe auch versucht, mit dem Inhalt der log4j.properties
Datei - wie Einstellung log4j.logger.org.hibernate=debug
- ohne Glück zu spielen. Was vermisse ich?
Edit: der Inhalt der Hibernate-service.xml-Datei ist
<server>
<mbean code="org.jboss.hibernate.jmx.Hibernate"
name="jboss.har:service=Hibernate_SMS">
<attribute name="DatasourceName">java:/SMS_DS</attribute>
<attribute name="Dialect">org.hibernate.dialect.HSQLDialect</attribute>
<attribute name="SessionFactoryName">java:/hibernate/SessionFactory</attribute>
<attribute name="CacheProviderClass">org.hibernate.cache.HashtableCacheProvider</attribute>
<attribute name="ShowSqlEnabled">true</attribute>
</mbean>
</server>
Ich bin nicht 100% sicher, ob dies tatsächlich eine Wirkung hat, though. Diese XML-Datei befindet sich im Eclipse-Projekt, das meine Datenbankdaten verarbeitet, aber nicht im JBoss-Bereitstellungsverzeichnis enthalten ist.
Edit 2: Dies wird auf jeden Fall als HAR eingesetzt. Das heißt, ich bin mir ziemlich sicher, dass ich brauche hibernate.cfg.xml
- Ich erinnere mich, Probleme zu haben, wenn ein Mapping-Dokument als Eintrag in dieser Datei weggelassen wurde. Ich denke, die HAR wird Ameise erzeugt unter Verwendung - es ist ein Ziel für die es in der Datei build.xml:
<target name="har" depends="prepare" description="Builds the Hibernate HAR file">
<mkdir dir="${class.root}" />
<mkdir dir="${distribution.dir}" />
<jar destfile="${distribution.dir}/${har.name}">
<!-- include the hbm.xml files -->
<fileset dir="${class.root}">
<include name="**/*.hbm.xml"/>
<include name="com/[redacted]/sms/data/dto/*.class"/>
<include name="com/[redacted]/sms/data/dto/base/*.class"/>
</fileset>
<!-- include jboss-service.xml -->
<metainf dir="${hibernate.dir}">
<include name="hibernate-service.xml"/>
</metainf>
</jar>
</target>
aber wenn ich tue, um den Ant-Build mit falsch geformter XML in der Hibernate-service.xml-Datei, es scheitert nicht. Update Selbst das vollständige Löschen der Datei führt nicht dazu, dass ein Build fehlschlägt. Irgendwelche Ideen hier? End-Update
Es klingt wie sollte die Ausgabe von SQL-Anweisungen Hibernate bekommen (wenn alles richtig eingestellt ist oben) ganz darum kümmern - bedeutet das, dass die Einstellungen in log4j.properties keinen Unterschied machen? - weil das tatsächlich die Ausgabe ändert, wenn ant ausgeführt wird.
bearbeiten 3: Nachdem mit meinen Daten in andere seltsame Probleme laufen har
löschte ich die har Datei, um sie vollständig und baute das Ziel har
Ant Build verwenden. Plötzlich funktioniert alles! Danke an das Schachspiel für seine großartige Hilfsbereitschaft. Kann nicht sagen, dass ich genau weiß, was es am Ende getan hat, aber ich würde eher seine Bemühungen anerkennen, als zu schreiben und meine eigene Antwort zu akzeptieren; Ich entschuldige mich, wenn Sie kein "er" sind.
'hibernate.show_sql' (oder' ShowSqlEnabled' in JBoss mbean) unabhängig von Logging-Konfiguration; Wenn aktiviert, wird immer SQL in die Konsole gedruckt. Das Setzen von 'org.hibernate.SQL = DEBUG' in der entsprechenden Logger-Konfiguration wird dasselbe tun, aber für jeden Ausgang, der für den Logger konfiguriert ist. Beide Methoden sind voneinander unabhängig (z. B. wenn Sie beide setzen, erhalten Sie zweimal sql) – ChssPly76