覆盖findAll()Spring Data Gemfire Repo查询

时间:2014-02-21 18:50:01

标签: spring-data spring-data-rest spring-data-gemfire

我在GemFire地区填充了数百万个对象。我不希望执行默认findAll() SDR查询来一次性检索数百万个对象。我试图找出是否有办法覆盖默认的findAll查询并提供LIMIT参数来限制从GemFire区域检索的对象数量。这是我想要做的一个例子:

NoRepositoryBean
public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {

/**
 * Returns all instances of the type.
 * 
 * @return all entities
 */
Iterable<T> findAll();
}


public interface MyRepository extends CrudRepository<MyRepoObject, String> {


@Query("SELECT * FROM MyRegion LIMIT $1")
Iterable<CellTower> findAll(@Param("limit") String limit);

} 

目前,我正在使用Spring Data Gemfire 1.4.0.BUILD-SNAPSHOT和Spring Data REST 2.0.0.BUILD-SNAPSHOT版本

2 个答案:

答案 0 :(得分:0)

这个方便的入门指南“使用REST访问GemFire数据(https://spring.io/guides/gs/accessing-gemfire-data-rest/)”不久前写过,可能对您的特定用例有帮助。

答案 1 :(得分:0)

以下对我有用。尝试使用Integer而不是String作为findAll的参数

 @Query("SELECT * FROM /Customer LIMIT $1")
    List<Customer> findAll(@Param("limit") Integer max);