2012-04-20 6 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

同様のことをやろうとしていたときにこの質問が見つかりました。

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

サポートされていないよう:残念ながら、私はorg.springframework.data.repository.query.parser.PartTreeに何を参照してください与えられました。

代わりに、新しいインターフェイスとそれを実装するクラスを作成して、カスタム動作をリポジトリに追加できます(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) { 
     // ... 
    } 
} 

このクラスの名前は、SchoolRepositoryCustomImplではなく、SchoolRepositoryImplです。

関連する問題