我有一个大型Web应用程序,有时很难找到产生org.springframework.jdbc.InvalidResultSetAccessException的列名。 我使用Spring 4.1.6,并且SqlRowSet方法抛出异常,例如: sqlRowSet.getString(“ name”) sqlrowSet.getInt(“ number”) 有没有办法记录引起异常的名称? 有没有一种方法可以覆盖getString,getInt等,以便我添加system.out.println来记录产生异常的列名?
答案 0 :(得分:0)
InvalidResultSetAccessException
包装了一个SQLException
,它可能可能具有更多信息;例如在消息中。您可以调用InvalidResultSetAccessException::getSQLException
进行访问。请注意,实际的SQLException
类及其消息可能是特定于数据库的。
您可以在引发异常的行上设置一个断点,然后使用调试器检查上下文。
除此之外……不。查找列名的代码既不会记录它,也不会在出现错误时显式记录它。
我想您可以为SqlRowSet
对象创建自己的包装器,但是正如他们所说,“治愈胜于疾病”。
答案 1 :(得分:0)
Spring数据JPA使用字典检查数据库中是否存在列名