Ich entwickle eine Hibernate-Konsolenanwendung und verweise auf diesen Artikel http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/ den P6Spy einzurichten, um zu sehen, was der tatsächliche Wert des "(?)" des von Hibernate generierten SQL ist.
Die Einrichtung sollte gut funktionieren, da ich die von P6Spy ausgegebenen Info-/Debug-Meldungen beim Starten der Anwendung sehen kann. Danach scheint P6Spy jedoch keine JDBC-Anweisungen abfangen zu können. Aus dem von Hibernate erzeugten Protokoll (z. B: Hibernate: insert into Module (projectName, moduleName, projectId) values (?, ?, ?)
), kann er sicher sein, dass die JDBC-Anweisungen bereits an die Datenbank gesendet werden.
Meine Einstellung ist die folgende:
hibernate.cfg.xml
- Bereits festgelegt für die Verwendung des P6Spy Treibers:
<property name="hibernate.connection.driver_class">com.p6spy.engine.spy.P6SpyDriver</property>
- Bereits eingeschaltet ist die hibernate.show_sql-Eigenschaft aktiviert:
<property name="hibernate.show_sql">true</property>
spy.properties
- Bereits geändert, um meine aktuelle Datenbank JDBC-Treiber , Filter gesetzt auf false , includecategories bereits explizit so eingestellt, dass alles protokolliert wird.
module.log=com.p6spy.engine.logging.P6LogFactory realdriver=oracle.jdbc.driver.OracleDriver filter=false dateformat=yyyy.MM.dd HH:mm:ss excludecategories= includecategories=error, info, batch, debug,statement,commit,rollback,result appender=com.p6spy.engine.logging.appender.StdoutLogger
Verpasse ich eine wichtige Einstellung?