我有一个Java桌面Web应用程序,该应用程序使用两个Dynamodb表构建并运行,以某种方式创建了一个表(Customers),而另一个表(FoodItems)却没有。当我尝试通过API访问FoodItems时,出现异常:Cannot do operations on a non-existent table
。当我在JUnit测试期间尝试访问FoodItems时,发生了同样的事情:BUILD FAIL com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException
。
我知道为什么。这是因为从未创建FoodItems表。但是我无法弄清楚在哪里或如何创建它,甚至我也不确定一开始如何创建客户表。
我正在使用git repository中的这个this tutorial。我刚刚复制了类和JUnit测试来添加FoodItems表。该项目的构建很好,但是如果我转到http://localhost:8080/fooditems
,则会收到上面的异常...它专门发生在JUnit测试中的foodItemRepository.save(fooditem);
行。
如果该表尚不存在,如何在应用启动时创建表?
最佳答案
我已经为DBInitializer创建了一个接口(interface),该接口(interface)允许我创建诸如CustomerDBInitializer,FoodItemDBInitializer等的抽象类。这引起了问题。我相信根本原因是因为我正在使用带有接口(interface)的Spring和@PostConstruct注释器。