我正在测试 DynamoDB 表,并希望使用前缀“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())));