我想做什么? -我想使用 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/
我在从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""-
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
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/
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request
在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
我遵循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
我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c