我有一个Java桌面Web应用程序,它使用两个Dynamodb表构建和运行,不知何故,其中一个表(Customers)被创建,而另一个(FoodItems)则没有。当我尝试通过API访问FoodItems时,我得到一个例外:tempo
。当我尝试在JUnit测试期间访问FoodItems时,同样的事情:Message::where('job_id','=',3)
->distinct()
->count();
。
我知道为什么。这是因为从未创建FoodItems表。但我无法弄清楚在哪里或如何创建它,我甚至不确定如何创建Customers表。
我正在git repository使用此this tutorial。我刚刚复制了类和JUnit测试以添加一个FoodItems表。该项目构建得很好,但如果我转到<a class="panel-link" ...>
<div class="panel panel-default">
<div class="panel-body">
...
</a>
...
<a class="#" ...>
...
</div>
</div>
</a>
,我会得到上面的例外...它特别发生在JUnit测试中的Cannot do operations on a non-existent table
行。
如果表尚不存在,如何在应用启动时创建表?
答案 0 :(得分:1)
我为DBInitializer创建了一个接口,允许我创建抽象类,如CustomerDBInitializer,FoodItemDBInitializer等。这导致了问题。我认为根本原因是因为我使用Spring和带有接口的@PostConstruct注释器。