You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have custom converter that converts string to enum but looks like spring doesn't invoke it. I think problem is in MappingRelationalConverter.getPotentiallyConvertedSimpleRead
code "Enum.class.isAssignableFrom(target) && value instanceof CharSequence)" returns true and as result tries to convert str to enum via Enum.valueOf. But in my case expected code should be
getConversionService().convert(value, TypeDescriptor.forObject(value), createTypeDescriptor(type)). I called it in debug and it converts string to enum via my converter.
Here is stacktrace:
java.lang.IllegalArgumentException: No enum constant (I removed packet name here)
at java.base/java.lang.Enum.valueOf(Enum.java:273)
at org.springframework.data.relational.core.conversion.MappingRelationalConverter.getPotentiallyConvertedSimpleRead(MappingRelationalConverter.java:649)
at org.springframework.data.relational.core.conversion.MappingRelationalConverter$DefaultConversionContext.convert(MappingRelationalConverter.java:797)
at org.springframework.data.relational.core.conversion.MappingRelationalConverter$ConversionContext.convert(MappingRelationalConverter.java:931)
at org.springframework.data.jdbc.core.convert.MappingJdbcConverter$ResolvingConversionContext.convert(MappingJdbcConverter.java:451)
at org.springframework.data.relational.core.conversion.MappingRelationalConverter$DocumentValueProvider.getValue(MappingRelationalConverter.java:1113)
at org.springframework.data.jdbc.core.convert.MappingJdbcConverter$ResolvingRelationalPropertyValueProvider.getPropertyValue(MappingJdbcConverter.java:360)
at org.springframework.data.jdbc.core.convert.MappingJdbcConverter$ResolvingRelationalPropertyValueProvider.getPropertyValue(MappingJdbcConverter.java:310)
at org.springframework.data.relational.core.conversion.MappingRelationalConverter.readProperties(MappingRelationalConverter.java:556)
at org.springframework.data.relational.core.conversion.MappingRelationalConverter.populateProperties(MappingRelationalConverter.java:523)
at org.springframework.data.relational.core.conversion.MappingRelationalConverter.read(MappingRelationalConverter.java:457)
at org.springframework.data.relational.core.conversion.MappingRelationalConverter.readAggregate(MappingRelationalConverter.java:348)
at org.springframework.data.relational.core.conversion.MappingRelationalConverter.readAggregate(MappingRelationalConverter.java:311)
at org.springframework.data.jdbc.core.convert.MappingJdbcConverter.readAndResolve(MappingJdbcConverter.java:287)
at org.springframework.data.jdbc.core.convert.JdbcConverter.readAndResolve(JdbcConverter.java:106)
at org.springframework.data.jdbc.core.convert.EntityRowMapper.mapRow(EntityRowMapper.java:82)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:733)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:658)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:723)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:748)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:804)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:218)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:225)
The text was updated successfully, but these errors were encountered:
We just fixed a few bugs around that area. Care to upgrade spring-data-relational to 3.2.1-SNAPSHOT to retest whether the changes have addressed your issue?
Upgrading 3.1.5 -> 3.2.0
Using jdk temurin 17
I have custom converter that converts string to enum but looks like spring doesn't invoke it. I think problem is in MappingRelationalConverter.getPotentiallyConvertedSimpleRead
code "Enum.class.isAssignableFrom(target) && value instanceof CharSequence)" returns true and as result tries to convert str to enum via Enum.valueOf. But in my case expected code should be
getConversionService().convert(value, TypeDescriptor.forObject(value), createTypeDescriptor(type)). I called it in debug and it converts string to enum via my converter.
Here is stacktrace:
The text was updated successfully, but these errors were encountered: