import com.amazonaws.services.dynamodbv2.model.PutItemRequest; //导入方法依赖的package包/类

public List reindex(T instance) throws DataStoreException {

DynamoClassMapping tableInfo = getClassMapping(instance);

log.debug("reindex {}", instance.getClass().getSimpleName());

ScanRequest scanRequest = new ScanRequest();

scanRequest.setTableName(tableInfo.getDynamoTableName());

// TODO: Filter expressions on prefix?

ScanResult scanResponse = dynamoDB.scan(scanRequest);

Map lastEvaluatedKey = scanResponse.getLastEvaluatedKey();

if (lastEvaluatedKey != null) {

throw new UnsupportedOperationException("Multiple page results not implemented");

}

List items = Lists.newArrayList();

List> responseItems = scanResponse.getItems();

for (Map itemData : responseItems) {

if (!tableInfo.matchesType(itemData)) {

continue;

}

T item = tableInfo.mapFromDb(itemData);

Map newItemData = tableInfo.mapToDb(item);

if (DynamoDbHelpers.areEqual(itemData, newItemData)) {

log.debug("No change for item: {}", itemData);

continue;

}

PutItemRequest putRequest = new PutItemRequest();

putRequest.setTableName(tableInfo.getDynamoTableName());

putRequest.setItem(itemData);

dynamoDB.putItem(putRequest);

Map oldKey = extractKey(itemData);

Map newKey = extractKey(newItemData);

if (!DynamoDbHelpers.areEqual(oldKey, newKey)) {

DeleteItemRequest deleteItemRequest = new DeleteItemRequest();

deleteItemRequest.setTableName(tableInfo.getDynamoTableName());

deleteItemRequest.setKey(oldKey);

dynamoDB.deleteItem(deleteItemRequest);

}

}

return items;

}

java put set_Java PutItemRequest.setItem方法代码示例相关推荐

  1. cdate在java中_Java Calendar.add方法代码示例

    本文整理汇总了Java中java.util.Calendar.add方法的典型用法代码示例.如果您正苦于以下问题:Java Calendar.add方法的具体用法?Java Calendar.add怎 ...

  2. java hashmap putall_Java ConcurrentHashMap.putAll方法代码示例

    import java.util.concurrent.ConcurrentHashMap; //导入方法依赖的package包/类 /** * 生成更新Sql * @param entity * @ ...

  3. java中setattribute_Java Files.setAttribute方法代码示例

    import java.nio.file.Files; //导入方法依赖的package包/类 @Override public void setFileHiddenAttribute( String ...

  4. java default locale_Java JSON.defaultLocale方法代码示例

    import com.alibaba.fastjson.JSON; //导入方法依赖的package包/类 public void test_time() throws Exception { lon ...

  5. java sql xml_Java ResultSet.getSQLXML方法代码示例

    import java.sql.ResultSet; //导入方法依赖的package包/类 protected Object processColumn(ResultSet rs, int inde ...

  6. java get timestamp_Java Timestamp.getTime方法代码示例

    import java.sql.Timestamp; //导入方法依赖的package包/类 /** * Tests fix for BUG#5874, timezone correction goe ...

  7. java的setvisible_Java Container.setVisible方法代码示例

    import java.awt.Container; //导入方法依赖的package包/类 public static void loadOptions(final String name, fin ...

  8. java byte xml_Java XMLInputSource.setByteStream方法代码示例

    import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类 /** * Resolves an external p ...

  9. JAVA中rootpanel_Java JPanel.setFocusCycleRoot方法代码示例

    import javax.swing.JPanel; //导入方法依赖的package包/类 @Override public void actionPerformed(ActionEvent e) ...

最新文章

  1. Cruise Control
  2. Android 判断字符串是否为空
  3. python字典练习题
  4. hihoCoder-1097-最小生成树一·Prim算法 (最小生成树)
  5. (035) Linux之其他命令
  6. java之classpath到底是什么
  7. C语言 · 学做菜
  8. html为什么图片有的显示不出来,网页显示不出图片怎么办 6种常见的解决方案详解...
  9. 气体涡轮流量计仪表系数的计算方法!
  10. Linux4.13显卡切换,LINUX下手动切换双显卡或禁用其中一块显卡的解决办法
  11. [JS]Tue Feb 01 2022 00:00:00 GMT+0800 (中国标准时间) 日期格式化
  12. iOS APP之间到跳转,以及热门应用,手机自带到应用跳转
  13. 情人节有哪些礼物可以送给男朋友的,情人节送礼推荐
  14. /Users/xxxx/.zshrc:export:101: not valid in this context: /Users/xxxx/xxxx
  15. 程序员“薪资被应届生倒挂“现象明显,跳槽还是等待?
  16. git中patch的用法
  17. 闻听成都华为的员工跳楼自杀
  18. 再探Java抽象类与接口的设计理念差异
  19. windows服务器svn迁移到linux服务器svn3
  20. 2011-3-8用友.net笔试面试

热门文章

  1. Java SecurityManager checkPackageDefinition()方法与示例
  2. Linux比较大文件内容,Linux系统最大文件打开数优化,解决Too many open files报错
  3. java 二叉树特点_疯狂java笔记之树和二叉树
  4. mysql 输出参数 sql语句_MySQL: 详细的sql语句
  5. python正则匹配_Python正则表达式只匹配一次
  6. mysql 5.5 1366错误_laravel5.3 在 mysql5.1中运行出错 error: 1366 Incorrect integer
  7. java bitset_Java BitSet length()方法与示例
  8. mcq 队列_MCQ | 基础知识 免费和开源软件| 套装3
  9. JavaScript禁用页面刷新
  10. Oracle备份文件名获取系统时间的做法(windows)