Получение нулевого значения при использовании @Query данных о пружине из Монго - PullRequest
1 голос
/ 15 апреля 2020

Я запрашивал у mongodb данные mongorepository и spring.

Моя функция выглядит так:

@Repository
public interface UserRepository extends MongoRepository<User,String> {
    @Query(value="{'email' : ?0}")
    User findByEmail(String email);
}

Моя коллекция в mongodb выглядит следующим образом

> db.user.find();
{ "_id" : "1", "email" : "abc@gmail.com", "password" : "$2a$12$lDJgMZNLAcxv2J.QTZSjAuWJdPleBxXq.M4aj9itrR1RMDkgmwN7m", "name" : "def", "active" : 1, "isLoacked" : false, "isExpired" : false, "isEnabled" : true, "_class" : "com.x.gateway.auth.User" }

Всегда возвращает нулевое значение.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Поскольку email не является уникальным свойством, можно выбрать несколько пользователей. Так что сопоставьте метод с List<User>.

@Query(value="{'email' : ?0}")
List<User> findByEmail(String email);

Официально выполните c, здесь вы можете найти более подробную информацию.

0 голосов
/ 15 апреля 2020

Почему вы используете

@Query(value="{'email' : ?0}")

Поскольку электронное письмо является прямым полем (не вложенным), достаточно только

User findByEmail(String email);

и оно должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...