当前位置: 首页 > 知识库问答 >
问题:

如何使用使用封送拆收器的RangeKey查询DynamoDB GSI

缪征
2023-03-14

我有一个表,其中有一个二级索引。我的二级索引使用DynamoDB编组。

如何查询此GSI上的表?addRangeKeyCondition仅支持withS和withN方法。如何使用我的对象查询它?如果范围键是字符串,我会这样查询:

DynamoDBQueryExpression<RequestPerOfferItem> queryExpr = new DynamoDBQueryExpression<>();
queryExpr.withHashKeyValues(item).withRangeKeyCondition( "KeyName",
              new Condition().withAttributeValueList(new AttributeValue().withS(val)).withComparisonOperator(
                      ComparisonOperator.EQ));

但我不能这样做,因为我的范围键使用封送拆收器。如何使用此范围键查询我的GSI?

共有2个答案

宋宇
2023-03-14

如果您使用的是DynamoDBMapper,则可以使用DynamoDBMarshalling注释并指定要用于对象的DynamoDBMarshaller。

@DynamoDBMarshalling(YourObjectMarshaller.class)
public YourObject getYourObject() {
    ....
}
丁钟展
2023-03-14

您可以自己使用封送拆收器来获取对象的字符串表示形式:

public static class YourObjectMarshaller implements DynamoDBMarshaller<YourObject>
{
   public static final YourObjectMarshaller instance = new YourObjectMarshaller();
...
}

然后您可以自己将其用作您的ObjectMarshaller。例子marshall(obj)并将其作为字符串传递。

 类似资料:
  • 问题内容: 有没有一种方法可以指定JAXB在XML模式中用于编组/解编对象的适配器? 例如,如果我想将以下内容解析为整数: 我可以在架构中使用以下内容: 当我通过XJC工具运行模式时,应使用Integer.decode()作为值为0x1234的Integer或十进制4660来解码字符串“ 0x1234”。生成的Adapter类正确反映了这一点: 但是,当我想将值编组回XML元素(这是String文

  • 我正在构建一系列链接类,我希望这些类的实例能够整理成XML,这样我就可以将它们保存到一个文件中,以后再读进去。 目前我使用以下代码作为测试用例: XML输出为: 元素为空有什么原因吗?我希望它包含日期的字符串表示(即)。为了做到这一点,我需要编写一些我自己的代码吗? 的输出是:

  • 问题内容: 我试图编组多个对象,例如添加到via中。我开始使用此设置: 和 但是,我得到了以下运行时例外: javax.xml.bind.JAXBException:com.jaxb.example.marshall.Book或其任何超类对此上下文都是未知的] 我的类型定义如下。 书:- 图书清单:- 马歇尔代码:- 我正在尝试放置注释(参考:-JAXB异常:该上下文未知的类)。该注释在我的版本中

  • 我正尝试使用AWS API网关到另一个服务,如下所示: https://jsonplaceholder.typicode.com/comments?postid=1和postid=2 我遵循API网关API的Map Request Parameters来创建get方法。 所以我在方法执行中有以下内容:

  • 问题内容: 我需要分解一个始终如下所示的字符串: 东西-something_else。 我需要在另一个输入字段中输入“ something_else”。当前,此字符串示例正被即时添加到HTML表行中,如下所示: 我认为“拆分”是可行的方法,但是几乎找不到文档。 问题答案: 可以在MDN找到文档。请注意,是不是 一个jQuery方法,但本地字符串的方法。 如果在字符串上使用,则返回带有子字符串的数组

  • 本文向大家介绍如何使用LIMIT查询MongoDB?,包括了如何使用LIMIT查询MongoDB?的使用技巧和注意事项,需要的朋友参考一下 使用limit()方法查询MongoDB。让我们创建一个包含文档的集合 在find方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是在MongoDB中使用LIMIT的查询- 这将产生以下输出-