AbstractJdbc2ResultSet

AbstractJdbc2ResultSet

假设我有两个实体:

@Entity
public class Column {
....
}

@Enity
public class Table {
    ...
    @OneToMany(fetch=FetchType.EAGER)
    @JoinColumn
    private List<Column> column;
}

我有一个服务类,它与这两个实体一起工作:
@Service
public class JDBCServiceImpl {
  public void writeColToFile(DataSource dataSource, Table table) {
    try (Connection connection = dataSource.getConnection()) {
      int countColumns = table.getColumn.size();
      List<String> columnLst = new ArrayList<>(countColumns);
      for (int i = 0; i < countColumns; i++) {
          columnLst.add(table.getColumn().get(i).getName());
      }
      .........
      ResultSet resultSet = preparedStatement.executeQuery();
      for (int i = 0; i < countColumns; i++) {
           columnFiles[i] = new File(tableDir.getAbsolutePath() + "\\" +
           columnLst.get(i) + ".txt"); // here I receive exception
    }
  }
}

我还想通过JUnit测试我的服务。
  public class TestService {
      @Test
      public testJDBCService() {
            Column col1 = new Column;
            col1.setName("a");
            ColumnInfo col2 = new ColumnInfo();
            col2.setName("b");
            List<Column> allCols = new ArrayList<>();
            allCols.add(col1);
            allCols.add(col2);
            //
            Table table = new Table();
            table.setName("table1");
            table.setColumn(allCols);
            ...
            jdbcService.writeColToFile(dataSource, table);
      }
    }

所以当我运行测试时,我会收到下一个异常:
org.postgresql.util.PSQLException:结果集未正确定位,
也许你需要下一个电话。在
org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkResultSet(AbstractJdbc2ResultSet.java:2888)

org.postgresql.jdbc2.AbstractJdbc2ResultSet.getString(AbstractJdbc2ResultSet.java:1963)

service.loader.impl.JDBCServiceImpl.writeColToFile(JDBCServiceImpl.java:73)
从代码中,我看到在尝试遍历包含column.getName()对象的列表时抛出了异常(在这个字符串上:columnLst.get(i))。那么如何解决这个问题呢?提前谢谢。

最佳答案

抱歉,这个数组没有正确初始化,现在一切正常。

09-11 20:30