sql >> Base de Datos >  >> NoSQL >> Redis

Provocado por:java.lang.IllegalArgumentException:CONTAINING (1):[IsContaining, Containing, Containers] no es compatible con la derivación de consultas redis - Redis

Ok, comencemos desde "Cómo funciona Redis"

Redis trabaja en hashes para ID, lo que ayuda a una ubicación más rápida del registro.@Indexed también se codifica y almacena para localizar el registro con mayor rapidez

Por lo tanto, de forma predeterminada para MiddleName, la consulta "contain" no funcionará, ya que el Hash para la cadena "Test" no estará contenido en el Hash para la cadena "TestUser".

Pero ExampleMatcher está aquí al rescate.

Fuente:https://docs.spring.io/spring-data/redis/docs/2.1.2.RELEASE/reference/html/#query-by-example

Solución para la búsqueda de RoleName en Role Object es relativamente simple:use esta consulta

userRepository.findByRoleRoleName("ADMIN"))(Básicamente elimina el guión bajo)

Y la buena noticia es que se puede combinar con el ExampleMatcher anterior. .

Hablemos si tienes dudas.

Referencia útil para la búsqueda de RoleName:consulta de objetos anidados en Redis usando Spring Data