Skip to content

AotRepositoryCreator fails with ConverterNotFoundException for derived queries using converters #2174

@mp911de

Description

@mp911de

When using parameters in derived queries that require conversion (e.g. List<User> findByCreatedBefore(Instant instant);), AOT repository generation fails with:

2025-11-04 09:08:29,608 ERROR sitory.aot.generate.AotRepositoryCreator: 240 - Failed to contribute Repository method [org.springframework.data.jdbc.repository.aot.UserRepository.findByCreatedBefore]
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [org.springframework.data.jdbc.repository.aot.PlaceholderAccessor$CapturingJdbcValue] to type [java.sql.Timestamp]
	at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:288)
	at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:184)
	at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:165)
	at org.springframework.data.relational.core.conversion.MappingRelationalConverter.writeValue(MappingRelationalConverter.java:718)
	at org.springframework.data.jdbc.core.convert.QueryMapper.convertValue(QueryMapper.java:495)
	at org.springframework.data.jdbc.core.convert.QueryMapper.convertValue(QueryMapper.java:462)
	at org.springframework.data.jdbc.core.convert.QueryMapper.mapCondition(QueryMapper.java:300)
	at org.springframework.data.jdbc.core.convert.QueryMapper.getCondition(QueryMapper.java:251)
	at org.springframework.data.jdbc.core.convert.QueryMapper.unroll(QueryMapper.java:192)
	at org.springframework.data.jdbc.core.convert.QueryMapper.getMappedObject(QueryMapper.java:173)
	at org.springframework.data.jdbc.repository.query.StatementFactory$SelectionBuilder.applyCriteria(StatementFactory.java:228)
	at org.springframework.data.jdbc.repository.query.StatementFactory$SelectionBuilder.build(StatementFactory.java:202)
	at org.springframework.data.jdbc.repository.query.JdbcQueryCreator.complete(JdbcQueryCreator.java:212)
	at org.springframework.data.jdbc.repository.query.JdbcQueryCreator.complete(JdbcQueryCreator.java:52)
	at org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:96)
	at org.springframework.data.jdbc.repository.aot.QueriesFactory.buildPartTreeQuery(QueriesFactory.java:173)
	at org.springframework.data.jdbc.repository.aot.QueriesFactory.createQueries(QueriesFactory.java:133)
	at org.springframework.data.jdbc.repository.aot.JdbcRepositoryContributor.contributeQueryMethod(JdbcRepositoryContributor.java:119)
	at org.springframework.data.repository.aot.generate.AotRepositoryCreator.contributeMethod(AotRepositoryCreator.java:289)
	at org.springframework.data.repository.aot.generate.AotRepositoryCreator.lambda$contributeMethods$1(AotRepositoryCreator.java:237)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
	at org.springframework.data.repository.aot.generate.AotRepositoryCreator.contributeMethods(AotRepositoryCreator.java:234)
	at org.springframework.data.repository.aot.generate.RepositoryContributor.contribute(RepositoryContributor.java:121)
	at org.springframework.data.jdbc.repository.aot.AotFragmentTestConfigurationSupport.postProcessBeanFactory(AotFragmentTestConfigurationSupport.java:106)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions