2015-08-26 2 views
1

Давайте предположим, что у меня есть следующие две сущности:ResultSet не установлен должным образом во время тестирования объекта

@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); 
     } 
    } 

Так что, когда я запускаю мой тест я receice следующее исключение:

org.postgresql.util.PSQLException: ResultSet не установлен должным образом, возможно, вам нужно позвонить в следующем. на 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)). Итак, как решить эту проблему? Заранее спасибо.

ответ

0

К сожалению, этот массив columnFiles не был правильно инициализирован, теперь все работает нормально.

Смежные вопросы