Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2203

Spring Data Redis repository won't work with queries with Lists

$
0
0

I have been trying to use Spring Data Redis but it fails for queries with List in them and just won't work. I tested it with normal fields such as ID and it works fine without issues, would appreciate it if someone can look at my code, thanks!

I have the following model:

@RedisHash("Flight")@Data@NoArgsConstructor@AllArgsConstructorpublic class Flight implements Serializable {    @Id    private String id;    @Indexed    private List<String> dayOfWeek;}

But when I try to define a query in my repository as follows:

@Repositorypublic interface FlightRepository extends CrudRepository<Flight, String> {    List<Flight> findFlightsByDayOfWeek(List<String> dayOfWeek);}

It throws the following exception when called:

Exception in thread "main" org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [byte] for value 'Monday'; nested exception is java.lang.NumberFormatException: For input string: "Monday"    at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47)    at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:192)    at org.springframework.core.convert.support.CollectionToArrayConverter.convert(CollectionToArrayConverter.java:75)    at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41)    at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:192)    at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:175)    at org.springframework.data.redis.core.RedisQueryEngine.keys(RedisQueryEngine.java:202)    at org.springframework.data.redis.core.RedisQueryEngine.lambda$doFind$0(RedisQueryEngine.java:102)    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:223)    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:190)    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:177)    at org.springframework.data.redis.core.RedisKeyValueAdapter.execute(RedisKeyValueAdapter.java:597)    at org.springframework.data.redis.core.RedisQueryEngine.doFind(RedisQueryEngine.java:139)    at org.springframework.data.redis.core.RedisQueryEngine.execute(RedisQueryEngine.java:81)    at org.springframework.data.redis.core.RedisQueryEngine.execute(RedisQueryEngine.java:52)    at org.springframework.data.keyvalue.core.QueryEngine.execute(QueryEngine.java:73)    at org.springframework.data.keyvalue.core.AbstractKeyValueAdapter.find(AbstractKeyValueAdapter.java:87)    at org.springframework.data.keyvalue.core.KeyValueTemplate.lambda$find$6(KeyValueTemplate.java:395)    at org.springframework.data.keyvalue.core.KeyValueTemplate.execute(KeyValueTemplate.java:362)    at org.springframework.data.keyvalue.core.KeyValueTemplate.executeRequired(KeyValueTemplate.java:377)    at org.springframework.data.keyvalue.core.KeyValueTemplate.find(KeyValueTemplate.java:393)    at org.springframework.data.keyvalue.repository.query.KeyValuePartTreeQuery.doExecute(KeyValuePartTreeQuery.java:136)    at org.springframework.data.keyvalue.repository.query.KeyValuePartTreeQuery.execute(KeyValuePartTreeQuery.java:110)    at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137)    at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121)    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:159)    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:138)    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)    at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:80)    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)    at com.sun.proxy.$Proxy66.findFlightsByDayOfWeek(Unknown Source)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)    at com.sun.proxy.$Proxy66.findFlightsByDayOfWeek(Unknown Source)    at com.distributed.airways.Application.initDatabase(Application.java:25)    at com.distributed.airways.Application.main(Application.java:18)Caused by: java.lang.NumberFormatException: For input string: "Monday"    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)    at java.lang.Integer.parseInt(Integer.java:580)    at java.lang.Byte.parseByte(Byte.java:149)    at java.lang.Byte.valueOf(Byte.java:205)    at java.lang.Byte.valueOf(Byte.java:231)    at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:205)    at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:64)    at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:50)    at org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter.convert(GenericConversionService.java:437)    at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41)    ... 46 more

Viewing all articles
Browse latest Browse all 2203

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>