在我的应用程序中,我在@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
属性,那么它可以正常工作。
如果有人能指出我正确的方向,我将不胜感激。
答案 0 :(得分:0)
如果您已经有一个实体类,则可以改用它,我想您的实体类名为Time:
@Query("select t.rosterDate from Time t")
如果您已经拥有实体类,则可以使用JPQL。