草庐IT

java - DynamoDBMapper 不工作 - 保存批记录抛出@DynamoDBTyped 或@DynamoDBTypeConverted 错误

coder 2024-03-11 原文

我想做什么? -我想使用 DynamoDBMapper 将一批记录保存到 DynamoDB。

模型类

package model;

import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAutoGeneratedKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBDocument;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;

@DynamoDBTable(tableName = "jobTable")
public final class MapperModel {
    public String jobId;
    public String jobName;
    public Stringparams stringparams[];
    public String url;
    public String source;
    public String[] target;
    public String contentType;
    public String dueDate;
    public Metadata metadata;

    /** getters start here **/
    @DynamoDBHashKey(attributeName = "jobId")
    public String getJobId() {
        return jobId;
    }

    @DynamoDBAttribute(attributeName = "jobName")
    public String getJobName() {
        return jobName;
    }

    @DynamoDBAttribute(attributeName = "url")
    public String getURL() {
        return url;
    }

    @DynamoDBAttribute(attributeName = "strings")
    public Stringparams[] getStrings() {
        return stringparams;
    }


    @DynamoDBAttribute(attributeName = "source")
    public String getSource() {
        return source;
    }

    @DynamoDBAttribute(attributeName = "target")
    public String[] getTarget() {
        return target;
    }

    @DynamoDBAttribute(attributeName = "contentType")
    public String getContentType() {
        return contentType;
    }

    @DynamoDBAttribute(attributeName = "dueDate")
    public String getDueDate() {
        return dueDate;
    }

    @DynamoDBAttribute(attributeName = "metadata")
    public Metadata getMetadata() {
        return metadata;
    }

    /** setters start here **/

    public void setJobId(String string) {
        this.jobId = string;
    }

    public void setJobName(String jobName) {
        this.jobName = jobName;
    }

    public void setStrings(Stringparams[] strings) {
        this.stringparams = strings;
    }

    public void setURL(String url) {
        this.url = url;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public void setTarget(String[] target) {
        this.target = target;
    }

    public void setContentType(String contentType) {
        this.contentType = contentType;
    }

    public void setDueDate(String dueDate) {
        this.dueDate = dueDate;
    }

    public void setMetadata(Metadata metadata) {
        this.metadata = metadata;
    }

    @DynamoDBDocument
    public static final class Stringparams {
        @DynamoDBAutoGeneratedKey
        public String key;
        public String value;
        public String description;

        public String getKey() {
            return key;
        }

        public void setKey(String key) {
            this.key = key;
        }

        @DynamoDBAttribute(attributeName = "value")
        public String getValue() {
            return value;
        }

        public void setValue(String value) {
            this.value = value;
        }

        @DynamoDBAttribute(attributeName = "description")
        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }

    }

    @DynamoDBDocument
    public static final class Metadata {
        public String invoicingCategory;
        public String invoicingRegion;
        public String referenceURL;

        public void setInvoicingCategory(String invoicingCategory) {
            this.invoicingCategory = invoicingCategory;
        }

        public void setInvoicingRegion(String invoicingRegion) {
            this.invoicingRegion = invoicingRegion;
        }

        public void setReferenceURL(String referenceURL) {
            this.referenceURL = referenceURL;
        }

        @DynamoDBAttribute(attributeName = "invoicingCategory")
        public String getInvoicingCategory() {
            return invoicingCategory;
        }

        @DynamoDBAttribute(attributeName = "invoicingRegion")
        public String getInvoicingRegion() {
            return invoicingRegion;
        }

        @DynamoDBAttribute(attributeName = "referenceURL")
        public String getReferenceURL() {
            return referenceURL;
        }

    }
}

public class Test {

    ......
    .......

    public void persistRecordsToDataStore(List<MapperModel> 
                                          requestModelList) 
    {

                AmazonDynamoDB amazonDynamoDBClient = new 
                                       AmazonDynamoDBClient();
                DynamoDBMapper dynamoDBMapper = new  
                                     DynamoDBMapper(amazonDynamoDBClient);


     amazonDynamoDBClient.setRegion(Region.getRegion(Regions.US_WEST_2));

     boolean insertStatus = insertRecords(dynamoDBMapper, requestModelList)

   }     


   public static boolean insertRecords(DynamoDBMapper dynamoDBMapper,
                    List<MapperModel> requestModelList) 
   {
      for (MapperModel requestModel : requestModelList) 
      {
        dynamoDBMapper.save(requestModel);
      }

       return true;
   }

        ......
        ......
   }

问题:我看到一个错误不受支持;需要@DynamoDBTyped 或@DynamoDBTypeConverted。任何人都可以帮助我理解和分享修复程序吗?

最佳答案

使用注释 @DynamoDBDocument 有更简单的方法>

例如在上面的java类中,

@DynamoDBDocument
public class Metadata {
    private Stirng aa;
    private int bb;
}

那么它应该可以工作了

关于java - DynamoDBMapper 不工作 - 保存批记录抛出@DynamoDBTyped 或@DynamoDBTypeConverted 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41108404/

有关java - DynamoDBMapper 不工作 - 保存批记录抛出@DynamoDBTyped 或@DynamoDBTypeConverted 错误的更多相关文章

  1. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  2. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  3. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  4. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  5. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  6. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  7. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

  8. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  9. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  10. ruby-on-rails - 如何在 Rails View 上显示错误消息? - 2

    我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c

随机推荐