2012-04-20 78 views
2

我創建一個MongoRepository,需要創建一個數查詢數查詢。有人可以通過SpringData MongoDB MongoRepository工具提供一個通過什麼方式實現這一目標的例子嗎?我能找到的所有示例都返回一個列表,但不重要。如何創建MongoRepository

這裏就是我試圖做的(顯然它不工作):

public interface SchoolRepository extends MongoRepository<School, String> { 
    @Query("db.school.count({studentStatus: ?0});") 
    int getCountOfStudents(int studentStatus); 
} 

感謝。 -AP_

回答

1

我發現這個問題,因爲我試圖做類似的事情。不幸的是,由於我所看到的在org.springframework.data.repository.query.parser.PartTree

private static final Pattern PREFIX_TEMPLATE = Pattern.compile("^(find|read|get)(\\p{Upper}.*?)??By"); 

它似乎並沒有得到支持。

相反,我們可以通過創建一個新的接口,並且實現它的類添加自定義行爲到存儲庫(見reference manual section 1.4.1)。

public interface SchoolRepository extends CrudRepository<School, String>, SchoolRepositoryCustom { 
    // find... read... get... 
} 

public interface SchoolRepositoryCustom { 
    int getCountOfStudents(int studentStatus); 
} 

@Service 
public class SchoolRepositoryImpl implements SchoolRepositoryCustom { 
    @Autowired 
    private SchoolRepository schoolRepository; 

    public int getCountOfStudents(int studentStatus) { 
     // ... 
    } 
} 

請注意,該類名爲SchoolRepositoryImpl,而不是SchoolRepositoryCustomImpl。