#java #jdbc #spring-jdbc #jdbctemplate
#java #jdbc #spring-jdbc #jdbctemplate
Вопрос:
Я получаю, что метод toArray не определен для коллекции типов, когда у меня есть несколько строк из запроса. работает нормально, когда в нем есть только одна строка.Я использую Java 11.
jdbcTemplate.query(sql,
new EntityRespRowMapper());
Это мой класс RowMapper
public class EntityRespRowMapper implements RowMapper<EntityResponse>{
@Override
public EntityResponsemapRow(ResultSet rs, int rowNum) throws SQLException {
EntityResponse entity = new EntityResponse();
entity.setEntity_id(rs.getLong("entity_id"));
entity.setValue(rs.getString("value"));
entity.setId(rs.getLong("id"));
entity.setEnd_date(rs.getDate("end_date"));
return entity ;
}
}
Что я здесь делаю не так. Может кто-нибудь мне помочь. Я тоже пробовал QueryForList .Это дает ту же проблему.
Комментарии:
1. Пожалуйста, выполните полную трассировку стека 😉
2. Трассировка стека отсутствует. Я вижу эту ошибку в объекте ответа при вызове базы данных.
3. Я только что понял, что ваш класс RowMapper не будет компилироваться (явный возврат в конце «конструктора»), который, я не думаю, должен быть конструктором
4. Вы имеете в виду, что
value
полеEntityResponse
объекта содержит эту строку? Тогда это означает, что это то, что содержит ваша база данных. Если нет, уточните. Мы не видим ваш экран. Поэтому вам нужно точно объяснить, что вы делаете, что вы ожидаете, и что происходит вместо этого.5. Где именно вы используете toArray()? Правильный синтаксис заключается в передаче пустого массива в качестве параметра. Может быть, в этом проблема?
Ответ №1:
попробуйте обновить свой eclipse 2019-06 и выше.
Я столкнулся с аналогичной проблемой даже с eclipse 2019-03 (eclipse-jee-2019-03), который по умолчанию поддерживает Java 11. В режиме отладки при попытке просмотреть содержимое объекта он не смог отобразить содержимое.
обновление до eclipse 2019-06 (с Java 11.0.3 и 11.0.4) позволило отладить содержимое объекта.
Последняя версия STS также должна была обновить свой eclipse (я, правда, не пробовал).
Ответ №2:
Это проблема с OpenJDK11, а не с STS. Если вы измените версию на OpenJDK8 или измените совместимость с компилятором и создадите свой проект на OpenJDK 8; эта ошибка должна быть устранена.