В чем разница между MongoTemplate и MongoRepository в Spring Data?
Мне нужно написать приложение, с помощью которого я могу выполнять сложные запросы, используя spring-data и mongodb. Я начал с использования MongoRepository, но боролся со сложными запросами, чтобы найти примеры или понять синтаксис.
Я говорю о таких запросах:
@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String> {
List<User> findByEmailOrLastName(String email, String lastName);
}
или использование запросов на основе JSON, которые я пробовал методом проб и ошибок, потому что я не понимаю синтаксис правильно. Даже после прочтения документации mongodb (нерабочий пример из-за неправильного синтаксиса).
@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String> {
@Query("'$or':[{'firstName':{'$regex':?0,'$options':'i'}},{'lastName':{'$regex':?0,'$options':'i'}}]")
List<User> findByEmailOrFirstnameOrLastnameLike(String searchText);
}
После прочтения всей документации кажется, чтоmongoTemplate
гораздо лучше задокументировано, тоMongoRepository
, Я имею в виду следующую документацию:
http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/
Можете ли вы сказать мне, что является более удобным и мощным в использовании?mongoTemplate
или жеMongoRepository
? Являются ли они одинаково зрелыми или у одного из них больше возможностей, чем у другого?