在“DataTruncation”异常中查找列

时间:2016-04-30 12:47:30

标签: java sql-server hibernate

有没有办法找到导致“java.sql.DataTruncation”异常的列名? 事实上,我有一个包含152列的优秀表,因此要确定导致此错误的列并不容易。 我在异常堆栈中搜索,但不幸的是它没有显示列名。

我使用JAVA 7,Hibernate 3和MSSQL作为数据库。

提前致谢,

1 个答案:

答案 0 :(得分:0)

请你可以做这样的事情

 public static void displayError(DataTruncation dataTruncation) {
    if (dataTruncation != null) {
      System.out.println("Data truncation error: ");
      System.out.println(dataTruncation.getDataSize() + " bytes should have been ");
      if (dataTruncation.getRead()) {
        System.out.println("Read (Error:) ");
      } else {
        System.out.println("Written (Error:) ");
      }
      System.out.println(dataTruncation.getTransferSize()
          + " number of bytes of data actually transferred.");
    }
  }

然后你可以调用它来进行调试

Statement stmt = conn.createStatement();

    stmt.executeUpdate("your sql query here");

    displayError(stmt.getWarnings());