2016-11-17 5 views
2

ich folgende POJO Objekt haben:Spring Data: string-Lookup in komplexen Objekt

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

und nach Mongo Einheit:

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

Auch habe ich dieses Repository:

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

I möchte alle corporateTransport Dokumente finden, wo Adresse Land wie "Republik". Wie kann ich es tun? Sollte ich schreiben @Query oder CrudRepository kann damit umgehen?

+0

Try querydsl die leicht Abfragen schreiben hilft. https://github.com/querydsl/querydsl/tree/master/querydsl-mongodb. Sehr einfach zu pluginieren und Abfragen zu schreiben. – Jango

+0

Ich würde vorschlagen, dass Sie sich http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongodb.repositories.queries und http://www.baeldung.com ansehen/questions-in-spring-data-mongodb –

Antwort

0

Sie brauchen die @Query-Annotation überhaupt nicht.

Versuchen Beispiel:

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

Versuchen

List<CorporateTransport> findByTo_CountryContaining(String country);

in CorporateTransportRepository.