Redis
 sql >> Database >  >> NoSQL >> Redis

Causato da:java.lang.IllegalArgumentException:CONTAINING (1):[IsContaining, Containing, Contains] non è supportato per la derivazione della query redis - Redis

Ok, iniziamo da "Come funziona Redis"

Redis funziona su Hash per ID che aiuta a localizzare più velocemente il record. @Indexed è anche sottoposto a hash e archiviato per individuare più rapidamente il record

Quindi, per impostazione predefinita per MiddleName, la query "contiene" non funzionerà come hash per la stringa "Test" non sarà contenuta nell'hash per la stringa "TestUser".

Ma ExampleMatcher è qui in soccorso.

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

Soluzione per la ricerca RoleName sull'oggetto ruolo è relativamente semplice:usa questa query

userRepository.findByRoleRoleName("ADMIN")(Rimuove fondamentalmente il carattere di sottolineatura)

E la buona notizia è che può essere combinato con il precedente ExampleMatcher .

Discutiamo se hai dubbi.

Riferimento utile per la ricerca di RoleName:query sugli oggetti nidificati in Redis utilizzando Spring Data