2016-11-17 3 views
2

Я следующий POJO объект:Spring Data: строка поиска в сложном объекте

public class Address { 
    private String country; 
    private String city; 
    private String street; 
    private String building; 
    private String room; 
} 

и после Монго лица:

@Document(collection = "corporateTransport") 
public class CorporateTransport { 
    @Id 
    private String id; 
    private Address from; 
    private Address to; 
} 

Также у меня есть этот репозиторий:

public interface CorporateTransportRepository extends CrudRepository<CorporateTransport, String> { 
} 

I хотел бы найти все корпоративные транспортные документы, в которых адресная страна, например, «Республика». Как я могу это сделать? Должен ли я писать @Query или CrudRepository может справиться с этим?

+0

Try querydsl, который помогает писать запросы легко. https://github.com/querydsl/querydsl/tree/master/querydsl-mongodb. Очень легко подключить и написать запросы. – Jango

+0

Я бы посоветовал вам взглянуть на http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongodb.repositories.queries и http://www.baeldung.com/запросы в пружине-данных MongoDB –

ответ

0

Вам вообще не нужна аннотация @Query.

Попробуйте Пример:

public interface CorporateTransportRepository extends CrudRepository<CorporateTransport, String> { 
    List<CorporateTransport> findByFrom_CountryContainingIgnoreCaseOrTo_CountryContainingIgnoreCase(String country); 
} 
0

Попробуйте

List<CorporateTransport> findByTo_CountryContaining(String country);

в CorporateTransportRepository.

Смежные вопросы