Ok, fangen wir mit "So funktioniert Redis"
anRedis arbeitet an Hashes für die ID, was beim schnelleren Auffinden von Datensätzen hilft. @Indexed wird ebenfalls gehasht und gespeichert, um den Datensatz schneller zu lokalisieren
Standardmäßig funktioniert die „Contain“-Abfrage für MiddleName also nicht, da der Hash für die „Test“-Zeichenfolge nicht im Hash für die Zeichenfolge „TestUser“ enthalten ist.
Aber ExampleMatcher ist hier, um zu retten.
Quelle:https://docs.spring.io/spring-data/redis/docs/2.1.2.RELEASE/reference/html/#query-by-example
Lösung für die RoleName-Suche im Rollenobjekt ist relativ einfach:Verwenden Sie diese Abfrage
userRepository.findByRoleRoleName("ADMIN")(Grundsätzlich den Unterstrich entfernen)
Und die gute Nachricht ist, dass es mit dem obigen ExampleMatcher kombiniert werden kann .
Lassen Sie uns diskutieren, wenn Sie Zweifel haben.
Hilfreiche Referenz für die RoleName-Suche:Abfrage verschachtelter Objekte in Redis mit Spring Data