Jaka jest różnica między MongoTemplate i MongoRepository Spring Data?
Muszę napisać aplikację, dzięki której mogę wykonywać złożone zapytania za pomocą spring-data i mongodb. Zacząłem od użycia MongoRepository, ale borykałem się ze złożonymi zapytaniami, aby znaleźć przykłady lub faktycznie zrozumieć składnię.
Mówię o takich zapytaniach:
@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String> {
List<User> findByEmailOrLastName(String email, String lastName);
}
lub użycie zapytań opartych na JSON, które próbowałem metodą prób i błędów, ponieważ nie otrzymałem poprawnej składni. Nawet po przeczytaniu dokumentacji mongodb (przykład nie działający z powodu złej składni).
@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);
}
Po przeczytaniu całej dokumentacji wydaje się, żemongoTemplate
jest wtedy znacznie lepiej udokumentowanyMongoRepository
. Mam na myśli następującą dokumentację:
http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/
Czy możesz mi powiedzieć, co jest wygodniejsze i bardziej wydajne w użyciu?mongoTemplate
lubMongoRepository
? Czy oba są tak samo dojrzałe, czy jeden z nich nie ma więcej funkcji niż drugi?