【问题标题】:DynamoDB: mapper and transactions using java SDKDynamoDB:使用 java SDK 的映射器和事务
【发布时间】:2013-10-23 02:47:36
【问题描述】:

我正在使用 Java 开发一个项目,并且正在使用 AWS 开发工具包。 我正在使用 Dynamo DB。 我正在使用映射器,它对我非常有用,因为我可以直接在 java 实体上执行基本操作。

最近,我看到了允许向 Dyanamo DB 添加事务性的库:https://github.com/awslabs/dynamodb-transactions

这样的库工作得很好,但它不允许我使用映射器。它仅适用于 GetRequest、PutRequest、...

我在获取结果时没有问题,因为我可以使用“marshallIntoObject(Class, Map)”方法从查询结果中获取java实体。

如何执行相同的操作来保存/更新项目? 我真的很想有一种方法可以输入一个java实体并将其转换为一个Map。 我将使用返回的地图通过事务引擎执行查询。 哪里可以买到?

此外,是否有计划让“dynamodb-transactions”项目能够支持映射器?

谢谢

【问题讨论】:

标签: sdk amazon-web-services transactions amazon-dynamodb


【解决方案1】:

您可以先查看 DynamoDB 在保存之前如何解析对象。 您可以在 GitHub 上查看 DynamoDBMapper 代码。您应该在函数 save 中寻找受保护的类 SaveObjectHandler 实现

问题/功能请求应记录在 GitHub 上项目的问题部分 (There's one already for supporting DynamoDBMapper) 或在 AWS DynamoDB forum 中讨论

【讨论】:

  • 是的,我看了你说的源码,但是没有公共方法可以调用,逻辑的流程也不够简单,不能在原类之外复用。我在 Aws DynamoDB 论坛上发布了答案,如果有人应该给我解决方案,我会更新这篇文章。
【解决方案2】:

跟进:链接的功能请求现在是implemented

DynamoDB 事务库现在支持使用 DynamoDB 映射器。查看示例和 javadocs 以开始使用它,如果您有任何问题,请随时在 github 项目中提出问题。

【讨论】:

  • 嘿大卫,这也是为 Android SDK 实现的吗?我试图在我的 build.gradle 中添加 compile 'com.amazonaws.services.dynamodbv2:amazon-dynamodb-transactions:1.1.2' 但 android studio 无法找到工件!
【解决方案3】:

仅供参考 - AWS 推出了对内置事务 API 库的 DynamoDBMapper 支持(在 re:Invent 2018 上推出):https://aws.amazon.com/about-aws/whats-new/2019/04/dynamodbmapper-now-supports-amazon-dynamodb-transactional-api-calls/

【讨论】:

  • 作为评论更好。
  • 同意转为评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 1970-01-01
相关资源
最近更新 更多