我正在将WildFly 10与Hibernate和一些JDBC一起使用。我根本没有任何日志如果我这样声明数据源:
<datasource jta="true" jndi-name="java:jboss/Firebird" pool-name="FirebirdPool" enabled="true" spy="true" use-ccm="true" statistics-enabled="false">
<connection-url>jdbc:firebirdsql:localhost/3050:C:\banco\COMPLEXO140116.FDB</connection-url>
但是如果我宣布通过:
?defaultResultSetHoldable=True&encoding=WIN1252
它记录
09:54:00,384警告[org.hibernate.engine.jdbc.spi.SqlExceptionHelper(默认任务3),SQL警告代码:0,SQLState:01000
09:54:00,384警告[org.hibernate.engine.jdbc.spi.SqlExceptionHelper](默认任务3)为空
每次查询
日志记录是由Hibernate完成的,而不是由Firebird或Jaybird完成的。发生这种情况的原因是因为您指定了defaultResultSetHoldable=True
。此设置将使所有语句具有可保留性HOLD_CURSORS_OVER_COMMIT
。在Jaybird中,HOLD_CURSORS_OVER_COMMIT
是通过使用TYPE_SCROLL_INSENSITIVE
实现的,但默认值为TYPE_FORWARD_ONLY
,因此Jaybird会升级结果集类型,并且符合JDBC规范(JDBC 4.2的15.1.1节),这会发出警告然后由Hibernate记录。