4

I have crudRepository interface with method named findLastUpdatedTimeByName:

public interface FooRepository extends CrudRepository<Foo, UUID> {
  @Query(
      "SELECT foo.last_updated_time FROM foo WHERE foo.name = :name")
  Optional<OffsetDateTime> findLastUpdatedTimeByName(
      @Param("name") Name name);
...

When i had Spring boot version 2.5.7 then everything worked. But after updating Spring Boot to version 2.6.3 then i get exception when findLastUpdatedTimeByName method is called:

org.springframework.data.mapping.MappingException: Couldn't find PersistentEntity for type class java.time.OffsetDateTime!
    at org.springframework.data.mapping.context.MappingContext.getRequiredPersistentEntity(MappingContext.java:79)
    at org.springframework.data.relational.repository.query.DtoInstantiatingConverter.<init>(DtoInstantiatingConverter.java:61)
    at org.springframework.data.jdbc.repository.query.JdbcQueryExecution$ResultProcessingConverter.lambda$new$0(JdbcQueryExecution.java:66)
    at org.springframework.data.util.Lazy.getNullable(Lazy.java:230)
    at org.springframework.data.util.Lazy.get(Lazy.java:114)
    at org.springframework.data.jdbc.repository.query.JdbcQueryExecution$ResultProcessingConverter.convert(JdbcQueryExecution.java:84)
    at org.springframework.data.jdbc.repository.query.AbstractJdbcQuery$ConvertingRowMapper.mapRow(AbstractJdbcQuery.java:187)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)

I cant figure it out, whats seems to be a problem. Do you guys have some ideas?


EDIT: I found out this problems only occurs when query result is null. But for some reason spring can not map it to Optional.empty()

Mich Buch
  • 49
  • 2

0 Answers0