Давайте предположим, что у меня есть следующие две сущности: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)
). Итак, как решить эту проблему? Заранее спасибо.