Android 在查询中未找到哈希键条件
我正在尝试使用唯一分区键查询DynamoDB表中的单个记录:Android 在查询中未找到哈希键条件,android,amazon-web-services,amazon-dynamodb,aws-sdk,Android,Amazon Web Services,Amazon Dynamodb,Aws Sdk,我正在尝试使用唯一分区键查询DynamoDB表中的单个记录: DynamoDBQueryExpression queryExpression=new DynamoDBQueryExpression() .withHashKeyValues("parkurself") .withFilterExpression("Latitude>25") .withFilterExpressio
DynamoDBQueryExpression queryExpression=new DynamoDBQueryExpression()
.withHashKeyValues("parkurself")
.withFilterExpression("Latitude>25")
.withFilterExpression("Latitude<40")
.withFilterExpression("Longitude>25")
.withFilterExpression("Longitude<40")
.withConsistentRead(false);
PaginatedQueryList<ParkingInfo> result=mapper.query(ParkingInfo.class, queryExpression);
我不知道怎么修理它。
谁能给我一些帮助吗?
提前谢谢。您不需要使用dynamo db mapper(和) 为了使用DynamoDBQueryExpression,您必须通过映射器。 通过withHashKeyValues传递的对象需要是从具有正确注释的类实例化的对象。请参见此处的示例: 您需要创建一个类,该类将Parkurself、Longitude、Latitude作为成员,并通过属性正确标记它们 有关如何在此处访问DDB的更多信息:
如果您不想/不需要使用映射器(即高级api),可以使用低级api。您不需要使用dynamo db映射器(和) 为了使用DynamoDBQueryExpression,您必须通过映射器。 通过withHashKeyValues传递的对象需要是从具有正确注释的类实例化的对象。请参见此处的示例: 您需要创建一个类,该类将Parkurself、Longitude、Latitude作为成员,并通过属性正确标记它们 有关如何在此处访问DDB的更多信息:
如果您不想/不需要使用映射器(即高级api),可以使用低级api。您不需要使用dynamo db映射器(和) 为了使用DynamoDBQueryExpression,您必须通过映射器。 通过withHashKeyValues传递的对象需要是从具有正确注释的类实例化的对象。请参见此处的示例: 您需要创建一个类,该类将Parkurself、Longitude、Latitude作为成员,并通过属性正确标记它们 有关如何在此处访问DDB的更多信息:
如果您不想/不需要使用映射器(即高级api),可以使用低级api。您不需要使用dynamo db映射器(和) 为了使用DynamoDBQueryExpression,您必须通过映射器。 通过withHashKeyValues传递的对象需要是从具有正确注释的类实例化的对象。请参见此处的示例: 您需要创建一个类,该类将Parkurself、Longitude、Latitude作为成员,并通过属性正确标记它们 有关如何在此处访问DDB的更多信息:
如果您不想/不需要使用映射器(即高级api),您可以使用低级api。正如Mircea所说,您需要创建一个类,首先封装条目,就像您已经完成的那样。这里的问题是您传入了没有映射属性的String类 创建映射器类的实例,并将哈希键设置为要查询的哈希键。将该类传递到查询中,它应该可以工作
// Create object which maps to the query object.
ParkingInfo parkingInfo = new ParkingInfo();
parkingInfo.setID("parkurself");
DynamoDBQueryExpression<ParkingInfo> queryExpression = new DynamoDBQueryExpression<ParkingInfo>()
.withHashKeyValues(parkingInfo)
.withFilterExpression("Latitude>25")
.withFilterExpression("Latitude<40")
.withFilterExpression("Longitude>25")
.withFilterExpression("Longitude<40")
.withConsistentRead(false);
PaginatedQueryList<ParkingInfo> result = mapper.query(ParkingInfo.class, queryExpression);
//创建映射到查询对象的对象。
倒车信息倒车信息=新的倒车信息();
停车信息设置ID(“停车场自身”);
DynamoDBQueryExpression queryExpression=新建DynamoDBQueryExpression()
.使用HashKeyValues(驻车信息)
.使用过滤器表达式(“纬度>25”)
.使用FilterExpression(“纬度25”)
.withFilterExpression(“经度正如Mircea所说,您需要先创建一个类来封装条目,看起来您已经这样做了。这里的问题是您传入了一个没有映射属性的String类
创建映射器类的实例,并将哈希键设置为要查询的哈希键。将该类传递到查询中,它应该可以工作
// Create object which maps to the query object.
ParkingInfo parkingInfo = new ParkingInfo();
parkingInfo.setID("parkurself");
DynamoDBQueryExpression<ParkingInfo> queryExpression = new DynamoDBQueryExpression<ParkingInfo>()
.withHashKeyValues(parkingInfo)
.withFilterExpression("Latitude>25")
.withFilterExpression("Latitude<40")
.withFilterExpression("Longitude>25")
.withFilterExpression("Longitude<40")
.withConsistentRead(false);
PaginatedQueryList<ParkingInfo> result = mapper.query(ParkingInfo.class, queryExpression);
//创建映射到查询对象的对象。
倒车信息倒车信息=新的倒车信息();
停车信息设置ID(“停车场自身”);
DynamoDBQueryExpression queryExpression=新建DynamoDBQueryExpression()
.使用HashKeyValues(驻车信息)
.使用过滤器表达式(“纬度>25”)
.使用FilterExpression(“纬度25”)
.withFilterExpression(“经度正如Mircea所说,您需要先创建一个类来封装条目,看起来您已经这样做了。这里的问题是您传入了一个没有映射属性的String类
创建映射器类的实例,并将哈希键设置为要查询的哈希键。将该类传递到查询中,它应该可以工作
// Create object which maps to the query object.
ParkingInfo parkingInfo = new ParkingInfo();
parkingInfo.setID("parkurself");
DynamoDBQueryExpression<ParkingInfo> queryExpression = new DynamoDBQueryExpression<ParkingInfo>()
.withHashKeyValues(parkingInfo)
.withFilterExpression("Latitude>25")
.withFilterExpression("Latitude<40")
.withFilterExpression("Longitude>25")
.withFilterExpression("Longitude<40")
.withConsistentRead(false);
PaginatedQueryList<ParkingInfo> result = mapper.query(ParkingInfo.class, queryExpression);
//创建映射到查询对象的对象。
倒车信息倒车信息=新的倒车信息();
停车信息设置ID(“停车场自身”);
DynamoDBQueryExpression queryExpression=新建DynamoDBQueryExpression()
.使用HashKeyValues(驻车信息)
.使用过滤器表达式(“纬度>25”)
.使用FilterExpression(“纬度25”)
.withFilterExpression(“经度正如Mircea所说,您需要先创建一个类来封装条目,看起来您已经这样做了。这里的问题是您传入了一个没有映射属性的String类
创建映射器类的实例,并将哈希键设置为要查询的哈希键。将该类传递到查询中,它应该可以工作
// Create object which maps to the query object.
ParkingInfo parkingInfo = new ParkingInfo();
parkingInfo.setID("parkurself");
DynamoDBQueryExpression<ParkingInfo> queryExpression = new DynamoDBQueryExpression<ParkingInfo>()
.withHashKeyValues(parkingInfo)
.withFilterExpression("Latitude>25")
.withFilterExpression("Latitude<40")
.withFilterExpression("Longitude>25")
.withFilterExpression("Longitude<40")
.withConsistentRead(false);
PaginatedQueryList<ParkingInfo> result = mapper.query(ParkingInfo.class, queryExpression);
//创建映射到查询对象的对象。
倒车信息倒车信息=新的倒车信息();
停车信息设置ID(“停车场自身”);
DynamoDBQueryExpression queryExpression=新建DynamoDBQueryExpression()
.使用HashKeyValues(驻车信息)
.使用过滤器表达式(“纬度>25”)
.使用FilterExpression(“纬度25”)
.withFilterExpression(“Longitudesee此处或此处非常感谢您的回答。但是,我的表没有范围键,它只有一个主散列键。因此,我不知道如何仅使用散列键处理它。请参阅此处或此处,非常感谢您的回答。但是,我的表没有范围键,它只有一个主散列键。因此,我不知道如何处理它只有一个散列键。请看这里或这里,非常感谢您的回答。但是,我的表没有范围键,它只有一个主散列键。因此,我不知道如何处理它