sql >> Databáze >  >> NoSQL >> Redis

Způsobeno:java.lang.IllegalArgumentException:CONTAINING (1):[IsConifying, Containing, Contains] není podporováno pro odvození dotazu redis - Redis

Dobře, začněme od „Jak Redis funguje“

Redis pracuje na Hashe pro ID, který pomáhá rychleji lokalizovat záznam.@Indexed je také hašován a uložen pro rychlejší určení záznamu

Ve výchozím nastavení tedy pro MiddleName dotaz „contain“ nebude fungovat, protože hash pro řetězec „Test“ nebude obsažen v Hash pro řetězec „TestUser“.

Ale ExampleMatcher je tady, aby zachránil.

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

Řešení pro vyhledávání RoleName v objektu role je poměrně jednoduchý:Použijte tento dotaz

userRepository.findByRoleRoleName("ADMIN")(V podstatě odstraňte podtržítko)

A dobrou zprávou je, že jej lze kombinovat s výše uvedeným ExampleMatcher .

Promluvme si, pokud máte pochybnosti.

Užitečná příručka pro vyhledávání RoleName:Dotazování na vnořené objekty v Redis pomocí Spring Data



  1. Efektivní stránkování v MongoDB pomocí mgo

  2. MongoDB $mul

  3. Funkce MongoDB v ClusterControl 1.4

  4. Server Redis nemůže spustit více než 1024M maxheap