【发布时间】:2014-01-20 05:33:33
【问题描述】:
我正在测试 DynamoDB 表,并希望为 prod 和 dev 环境设置不同的表名,使用前缀“dev_”进行开发。
我做了这个测试来打印表名:
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig.TableNameOverride;
TableNameOverride tbl = new TableNameOverride("test").withTableNamePrefix("dev_");
System.out.println("name=" + tbl.getTableName() + " prefix=" + tbl.getTableNamePrefix());
这打印:name=null prefix=dev_
这里的名字怎么是空的?
TableNameOverride tbl = new TableNameOverride("test");//.withTableNamePrefix("dev_");
System.out.println("name=" + tbl.getTableName() + " prefix=" + tbl.getTableNamePrefix());
打印:name=test prefix=null
*如何让表名成为“dev_test”?*
我想稍后使用它为开发模式下的所有表获取“dev_”前缀,如下所示:
DynamoDBTable annotation = (DynamoDBTable) myclass.getClass().getAnnotation(DynamoDBTable.class);
TableNameOverride tbl = new TableNameOverride(annotation.tableName()).withTableNamePrefix("dev_");
或者是否有另一种解决方案来分隔开发表和产品表?
我首先想到将它们放在不同的区域,但不确定。
也可以这样用:
mapper.save(ck, new DynamoDBMapperConfig(new TableNameOverride((isDev ? "dev_" : "") + annotation.tableName())));
【问题讨论】:
标签: java amazon-dynamodb