2014-01-24 94 views
2

我有一個Spring Data MongoDB存儲庫,我想用一個定義爲對象的搜索條件來查詢。Spring Data MongoDB:按類實例查詢

詳情:

我有一個模型類:

@Document 
public class ModelClass { 

    @Id 
    private String id; 

    private String field1; 
    private String field2; 
    ... 
    private String field10; 

    // getters and setters 
} 

我也有一個MongoRepository存儲這樣的類的實例:

public interface Repo extends MongoRepository<ModelClass,String> {} 

我想使用查詢庫ModelClass的實例作爲搜索條件。這些實例在所有字段中可能都沒有值(某些字段可能會保留null)。因此,在回購界面中,我需要類似於:

List<ModelClass> findByXXXX(ModelClass criteria); 

目標是查詢回購,而無需編寫所有可能的字段組合。

+0

那麼'spring-data' API沒有它。我能想到的最接近的是'findByField1AndField2 ... AndField10'並且把你的查詢中經常出現的字段(並且應該是)在開始時編入索引 –

回答

3

對於非常動態的查詢,Spring Data JPA與Querydsl集成。它允許您即時定義謂詞並將它們作爲MongoDB查詢執行。 reference documentation有詳細說明。

+1

感謝您的回答。接受! –