Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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数据dynamodb_Java_Spring_Spring Boot_Amazon Dynamodb - Fatal编程技术网

Java 或查询不支持spring数据dynamodb

Java 或查询不支持spring数据dynamodb,java,spring,spring-boot,amazon-dynamodb,Java,Spring,Spring Boot,Amazon Dynamodb,我只是尝试使用spring数据和一些“findBy”查询进行查询。下面,我们称之为DynamoDB数据库 我有这样一个界面: import org.socialsignin.spring.data.dynamodb.repository.EnableScan; import org.springframework.data.repository.CrudRepository; import es.viesgo.ciegen.persistence.Parameter; @EnableScan

我只是尝试使用spring数据和一些“findBy”查询进行查询。下面,我们称之为DynamoDB数据库

我有这样一个界面:

import org.socialsignin.spring.data.dynamodb.repository.EnableScan;
import org.springframework.data.repository.CrudRepository;

import es.viesgo.ciegen.persistence.Parameter;

@EnableScan
public interface ParameterRepository extends CrudRepository<Parameter, String> ,  ParameterRepositoryCustom {

List<Parameter> findByParameterOrStartdatevalidityOrEnddatevalidity(String parameter, String startdatevalidity, String enddatevalidity);
我在pom.xml中使用的spring引导的当前版本是1.5.10,spring数据dynamodb的当前版本是4.5.0


这些是……还是。。。方法真的不受支持吗?是否有更新版本的支持此功能?

有点难说,但Spring可能正在执行查询请求(与扫描或GetItem相反)

查询请求允许您设置KeyConditionExpression,但对表达式的形成方式有一些限制。您可以阅读所有详细信息,但只需突出几个部分:

该条件必须对单个分区键值执行相等测试

该条件可以选择性地对单个排序键值执行多个比较测试之一

这里的主要优点是在查询中只能使用单个分区键值和单个排序键值。这自动意味着不支持或,因为这需要多个值


查询请求还允许您设置一个FilterExpression,该表达式可以使用,也可以在KeyConditionExpression之后应用FilterExpression,换句话说,在项目已经从磁盘读取之后应用。

但是它应该能够使用扫描,而不是使用查询请求,这样您就可以实现该行为,还是我错了?我是DynamoDB的新手,所以可能我搞错了,您使用的是一个框架来与DynamoDB通信,所以很难说出它在引擎盖下做什么。我几乎可以肯定它不会使用扫描。Scan所做的基本上是查看表中的每个记录并执行可选的查询条件。如果记录通过了条件,则将其添加到结果集中。DynamoDB扫描1MB数据后,返回结果集。如果有更多记录需要扫描,Dynamo还将返回LastEvaluatedKey。由于这不是很有效,我怀疑这是你想要的。然而,它有一些用例。
java.lang.UnsupportedOperationException: Or queries not supported