@@ -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)));
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
Reference in New Issue
Block a user