ConverterNotFoundException при выполнении собственного запроса - PullRequest
0 голосов
/ 18 апреля 2019

В моем приложении у меня есть следующая функция в классе @Repository:

@Query(value="SELECT roster_date FROM timetable", nativeQuery=true)
List<LocalDate> getAllDates();

Когда я выполнил вышеуказанный запрос, я столкнулся со следующим ConverterNotFoundException:

org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.util.ArrayList<?>] to type [@org.springframework.data.jpa.repository.Query java.util.List<java.time.LocalDate>] 
for value '[2019-04-19 00:00:00.0, 2019-04-21 00:00:00.0]'; 
nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.sql.Timestamp] to type [@org.springframework.data.jpa.repository.Query java.time.LocalDate]

Я попытался зарегистрировать пользовательский конвертер следующим образом, но он также не работает.

@Component
public class SqlTimestampToLocalDateConverter implements Converter<Timestamp, LocalDate> {
    @Override
    public LocalDate convert(Timestamp source) {
        return source.toLocalDateTime().toLocalDate();
    }
}

Если я позвоню findById, чтобы получить ОДИНОЧНУЮ запись, используя мой класс @Entity, который содержит свойство LocalDate для столбца roster_date, тогда он работает нормально.

Я был бы очень признателен, если бы кто-то мог указать мне правильное направление.

1 Ответ

0 голосов
/ 18 апреля 2019

Если у вас уже есть класс сущностей, вы можете использовать его вместо этого, я думаю, ваш класс сущностей называется Time:

@Query("select t.rosterDate from Time t")

Если у вас уже есть классы сущностей, используйте JPQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...