Firebird过度记录

问题描述 投票:2回答:1

我正在将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&amp;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 jdbc firebird jaybird
1个回答
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记录。

© www.soinside.com 2019 - 2024. All rights reserved.