Polishing.

Original pull request #1226
See #1212
This commit is contained in:
Jens Schauder
2022-05-17 14:20:13 +02:00
parent 4fb0ccf721
commit 93837a198f
3 changed files with 5 additions and 2 deletions

View File

@@ -165,7 +165,7 @@ public class StringBasedJdbcQuery extends AbstractJdbcQuery {
RelationalParameters.RelationalParameter parameter = queryMethod.getParameters().getParameter(p.getIndex()); RelationalParameters.RelationalParameter parameter = queryMethod.getParameters().getParameter(p.getIndex());
ResolvableType resolvableType = parameter.getResolvableType(); ResolvableType resolvableType = parameter.getResolvableType();
Class<?> type = resolvableType.resolve(); Class<?> type = resolvableType.resolve();
Assert.notNull(type, "@Query parameter could not be resolved!"); Assert.notNull(type, "@Query parameter type could not be resolved!");
JdbcValue jdbcValue; JdbcValue jdbcValue;
if (value instanceof Iterable) { if (value instanceof Iterable) {
@@ -174,7 +174,9 @@ public class StringBasedJdbcQuery extends AbstractJdbcQuery {
SQLType jdbcType = null; SQLType jdbcType = null;
Class<?> elementType = resolvableType.getGeneric(0).resolve(); Class<?> elementType = resolvableType.getGeneric(0).resolve();
Assert.notNull(elementType, "@Query Iterable parameter generic type could not be resolved!"); Assert.notNull(elementType, "@Query Iterable parameter generic type could not be resolved!");
for (Object o : (Iterable<?>) value) { for (Object o : (Iterable<?>) value) {
JdbcValue elementJdbcValue = converter.writeJdbcValue(o, elementType, JdbcValue elementJdbcValue = converter.writeJdbcValue(o, elementType,
JdbcUtil.targetSqlTypeFor(JdbcColumnTypes.INSTANCE.resolvePrimitiveType(elementType))); JdbcUtil.targetSqlTypeFor(JdbcColumnTypes.INSTANCE.resolvePrimitiveType(elementType)));

View File

@@ -179,6 +179,7 @@ public class JdbcRepositoryCustomConversionIntegrationTests {
} }
interface EntityWithStringyBigDecimalRepository extends CrudRepository<EntityWithStringyBigDecimal, CustomId> { interface EntityWithStringyBigDecimalRepository extends CrudRepository<EntityWithStringyBigDecimal, CustomId> {
@Query("SELECT * FROM ENTITY_WITH_STRINGY_BIG_DECIMAL WHERE DIRECTION IN (:types)") @Query("SELECT * FROM ENTITY_WITH_STRINGY_BIG_DECIMAL WHERE DIRECTION IN (:types)")
List<EntityWithStringyBigDecimal> findByEnumTypeIn(List<Direction> types); List<EntityWithStringyBigDecimal> findByEnumTypeIn(List<Direction> types);

View File

@@ -4,7 +4,7 @@ DROP TABLE OTHER_ENTITY CASCADE CONSTRAINTS PURGE;
CREATE TABLE ENTITY_WITH_STRINGY_BIG_DECIMAL ( CREATE TABLE ENTITY_WITH_STRINGY_BIG_DECIMAL (
ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY, ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
STRINGY_NUMBER DECIMAL(20,10), STRINGY_NUMBER DECIMAL(20,10),
DIRECTION INTEGER DIRECTION NUMBER(1,0)
); );
CREATE TABLE OTHER_ENTITY ( CREATE TABLE OTHER_ENTITY (