我使用HsqlDB 2.2.8已经有一段时间了,我无法弄清楚日志显示哪些列或表有问题。我尝试升级到2.3.4(上一版本),但行为是一样的。
例如,使用Hibernate时,我试图在Hibernate执行find
时从Hsqldb中找到查询错误的来源。在Hibernate中我们有:
em.find(SomeEntity.class, id);
查看堆栈跟踪,Hibernate端的错误是:
javax.persistence.PersistenceException: org.hibernate.exception.DataException: could not extract ResultSet
来自HsqlDB端的错误:
Caused by: org.hsqldb.HsqlException: data exception: invalid character value for cast
这不是一个孤立的案例。来自HsqlDB的许多错误都没有显示表和列,如下所示:
Caused by: org.hsqldb.HsqlException: data exception: string data, right truncation
或致电程序:
incompatible data type in conversion / Error Code: -5561 / State: 42561
我正在寻找一些方法来记录来自HsqlDB的更多信息。我在调试时试试这个:
org.apache.log4j.Logger.getLogger("hsqldb.db").setLevel(org.apache.log4j.Level.DEBUG)
但不行。
那么,如何找到具有此invalid character
的表和列?