我正在尝试使用Cayenne Entity Manager将对象持续到数据库中。不幸的是,我收到以下错误:

org.apache.cayenne.CayenneRuntimeException: [v.3.0 Apr 26 2010 09:59:17] Commit Exception

Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'myDatabase.auto_pk_support' doesn't exist

知道我如何解决这个问题?谢谢。

有帮助吗?

解决方案

对于您的错误,在我看来,您从Cayenne Modeler中选择“默认”“ PK生成策略”(单击您的DB Entites,以查看具有该选项的Comobox)。这意味着Cayenne期望您的模式中存在一个填充的“ auto_pk_support”表(以便能够生成并跟踪主键)。

Cayenne Modeler可以为您生成此表 +内容:从工具菜单中选择“生成DB模式”,选择正确的连接,然后从下一个对话框中选择“创建PK Support”的复选框: - 您将看到SQL所需的SQL所需的SQL生成它 - 您可以将其复制并粘贴到您喜欢的SQL工具中,也可以让Cayenne Modeler运行它。

由于您使用的是MySQL,因此当然也有其他PK生成选项(以上是经典/默认的选项,并且可以在任何数据库上使用 - 但需要额外的表)。

我建议咨询 Cayenne建模者文档, ,或者更好 整个Cayenne文档 (因为它非常好),因为上述所有项目都很好地解释了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top