Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Cassandra存储库First3返回全部_Java_Spring_Cassandra - Fatal编程技术网

Java Spring Cassandra存储库First3返回全部

Java Spring Cassandra存储库First3返回全部,java,spring,cassandra,Java,Spring,Cassandra,方法按参数返回所有值,不受3的数量限制 public interface PersonalOfferRepository extends CassandraRepository<PersonalOffer> { @Query("SELECT * FROM personal_offers WHERE core_id = ?0") List<PersonalOffer> findFirst3ByCoreIdOrderByPriorityAsc(TypeCustome

方法按参数返回所有值,不受3的数量限制

public interface PersonalOfferRepository extends CassandraRepository<PersonalOffer> {

  @Query("SELECT * FROM personal_offers WHERE core_id = ?0")
  List<PersonalOffer> findFirst3ByCoreIdOrderByPriorityAsc(TypeCustomerCode typeCustomerCode);

}
public interface personalOfferPropository扩展了CassandraRepository{
@查询(“从core\u id=?0的个人\u优惠中选择*)
列出findFirst3ByCoreIdOrderByPriorityAsc(类型CustomerCode类型CustomerCode);
}

UPD。CrudeRepository也存在同样的错误

您应该使用cassandra扩展CassandraRepository,而不是目前Spring数据cassandra中的分页/切片功能。他们的问题追踪器上有一个公开的问题

如果支持,您还需要知道存储库查询关键字(如
First3
ByCoreId
OrderBy
,…)仅在不使用
@query
时才起作用。如果使用的是
@Query
注释,则覆盖了方法名查询

如果只获取3个结果,并且使用的是自定义查询,则必须使用
Pageable
参数,如下所示:

@Query("SELECT * FROM personal_offers WHERE core_id = ?0")
Page<PersonalOffer> findByCoreId(TypeCustomerCode typeCustomerCode, Pageable page);

但是,由于它还不受支持,您必须手动检索前三个结果。

从当前的spring数据cassandra 2.0.7.RELEASE开始,您可以将“切片”与CassandraPageRequest.first(3)一起使用。 请看这里:

更改为cassandra repository,结果与CrudeRespository相同。尝试实现这两种解决方案,但都返回了22行而不是3行列表FindFirst3 ByCoreIDorderByPriorityAsc(TypeCustomerCode TypeCustomerCode)@查询(“从core\u id=?0的personal\u offers中选择*”)列表findByCoreId(类型CustomerCode类型CustomerCode,可分页页面);现在如何调用该方法?PersonalOfferPresository.findByCoreId(coredId,newPageRequest(0,3,Sort.Direction.ASC,“priority”)).size();PersonalOfferPresository.findFirst3ByCoreIdOrderByPriorityAsc(coredId).size();您是否可以将
Pageable
方法的返回类型更改为
Page
?原因:org.springframework.dao.InvalidDataAccessApiUsageException:org.springframework.data.cassandra.repository.query.CassandraQueryMethod.verify不支持切片和页面查询(CassandraQueryMethod.java:82)
repository.findByCoreId(..., new PageRequest(0, 3, Direction.ASC, "priority")).getContent();