DynamoDB и TableNameOverride с префиксом

Я тестирую таблицы 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_");

Или есть другое решение для разделения таблиц dev и prod?

Сначала я думал о размещении их в отдельных регионах, но не был уверен в этом.

Можно также использовать это:

mapper.save(ck, new DynamoDBMapperConfig(new TableNameOverride((isDev ? "dev_" : "") + annotation.tableName())));

Ответы на вопрос(2)

Ваш ответ на вопрос