Я создал класс пользовательского класса так:Spring-хранилище данных MongoDB и наследование
public class User {
/**
* The list of roles for the user
*/
private List<String> roles;
/**
* The login information
*/
private ICredentials credentials;
/*---- the constructors and getters/setters are omitted ---*/
}
ICredentials интерфейс:
public interface ICredentials {
}
Одна реализация:
public class LoginPassword implements ICredentials {
/**
* The login of the user
*/
protected String login;
/**
* The password of the user
*/
protected String password;
/*---- the constructors and getters/setters are omitted ---*/
}
Теперь, Я создал репозиторий, чтобы найти пользователя из учетных данных:
public interface MongoUserRepository extends MongoRepository<User, String> {
List<User> findByCredentials(ICredentials credentials);
List<User> findByCredentialsEquals(ICredentials credentials);
}
Весенние журналы этого (для обоих запросов): org.springframework.data.mongodb.core.MongoTemplate [DEBUG] найти с помощью запроса: { "credentials" : { "login" : "test" , "password" : "test"}}
полей: нуль для класса: класс xxx.User в коллекции: пользователь
И ничего не найдено ... Кажется, что ничего не найдено, потому что атрибут «_class» не написан, это запрос. Я думаю, что хороший запрос должен быть: { "credentials" : {
"_class":"xxx.LoginPassword"
, "login" : "test" , "password" : "test"}}
Что-то я делаю не так? Я что-то упускаю ?
Благодаря
Я использую Spring MVC 3.2.0, весна-данные-Викисклада ядро 1.4.0, весна-данных MongoDB 1.1.1 и Монго-Java-драйвер 2.10.1 (я обновил все библиотеки до последней версии, чтобы быть уверенным, что это не ошибка уже исправлена, но без успеха)