question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Support ReactiveCrudRepository for Spring Data Redis Reactive [DATAREDIS-831]

See original GitHub issue

Michael Gmeiner opened DATAREDIS-831 and commented

I do not find any support of using the RedisRepository feature with ReactiveCrudRepository.

For example the following using:

@Repository
interface BookRepo : ReactiveCrudRepository<Book, String>

with @EnableRedisRepositories annotation present

and using default auto configuration from: spring-boot-starter-data-redis-reactive

I always get following error:

org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [my.package.hash.Book] to type [reactor.core.publisher.Mono<?>]org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [my.package.hash.Book] to type [reactor.core.publisher.Mono<?>] at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:321) at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:194) at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:174) at org.springframework.data.repository.util.ReactiveWrapperConverters.toWrapper(ReactiveWrapperConverters.java:197) at org.springframework.data.repository.core.support.QueryExecutionResultHandler.postProcessInvocationResult(QueryExecutionResultHandler.java:126) at org.springframework.data.repository.core.support.QueryExecutionResultHandler.postProcessInvocationResult(QueryExecutionResultHandler.java:72) at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:580) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:99) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy104.findById(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:197) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy104.findById(Unknown Source)

when calling for example:

bookRepo.findById("harrypotter").subscribe { println(it) }

Am i doing something wrong or is it just not implemented yet as i do not find any documentation or examples on that?


Affects: 2.0.7 (Kay SR7)

Issue Links:

  • DATAREDIS-796 Does Spring Data Redis have plans to support Reactive Repositories? (“duplicates”)

7 votes, 8 watchers

Issue Analytics

  • State:open
  • Created 5 years ago
  • Reactions:9
  • Comments:8

github_iconTop GitHub Comments

9reactions
hantsycommented, Dec 20, 2021

Any update to support Reactive repository?

1reaction
juliojgdcommented, Apr 9, 2022

@mp911de commented almost 4 years ago:

we currently don’t have plans to support reactive Redis repositories

Did plans regarding this evolved/changed during these (almost) 4 years?

Thanks in advance for the update on this

Read more comments on GitHub >

github_iconTop Results From Across the Web

Getting Started | Accessing Data Reactively with Redis - Spring
This guide walks you through the process of creating a functional reactive application that uses Spring Data to interact with Redis using the...
Read more >
Apply Spring Data's ReactiveCrudRepository to Redis
I went googling, it seems Spring Data Redis 2.0 doesn't mention reactive repository support. I'm wondering if anything I did wrong in my ......
Read more >
An Introduction to Spring Data Redis Reactive - Baeldung
In this tutorial, we're going to learn how to configure and implement Redis operations using Spring Data's ReactiveRedisTemplate.
Read more >
Spring WebFlux and Spring Data Redis Reactive | by Eric Anicet
In this story, we'll implement a sample REST API that uses Spring WebFlux with Spring Data Redis Reactive. Redis is an open-source (BSD...
Read more >
Spring Data R2DBC CRUD Example - Vinsguru
We need to create a repository for our entity class by extending ReactiveCrudRepository. import org.springframework.data.repository.reactive.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found