Ok laten we beginnen bij "Hoe Redis werkt"
Redis werkt aan hashes voor ID, wat helpt bij een snellere locatie van de record.@Indexed wordt ook gehasht en opgeslagen voor snellere lokalisatie van de record
Dus standaard voor MiddleName werkt de "bevatten"-query niet, omdat hash voor "Test"-tekenreeks niet wordt opgenomen in Hash voor tekenreeks "TestUser".
Maar ExampleMatcher is hier om te redden.
Bron:https://docs.spring.io/spring-data/redis/docs/2.1.2.RELEASE/reference/html/#query-by-example
Oplossing voor het zoeken naar RoleName op rolobject is relatief eenvoudig:gebruik deze zoekopdracht
userRepository.findByRoleRoleName("ADMIN")(Verwijder in wezen het onderstrepingsteken)
En goed nieuws is dat het kan worden gecombineerd met de bovenstaande ExampleMatcher .
Laten we bespreken als je twijfelt.
Nuttige referentie voor het zoeken naar RoleName:Zoek geneste objecten in Redis met behulp van Spring Data