与Cayenne实体经理的问题

时间:2010-06-02 18:02:21

标签: apache-cayenne

我正在尝试使用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

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

1 个答案:

答案 0 :(得分:4)

如果您的错误,我认为您从Cayenne Modeler中选择“默认”“PK生成策略”(单击您的数据库实体以查看具有该选项的comobox)。这意味着Cayenne希望在您的架构中存在填充的“auto_pk_support”表(以便能够生成并跟踪主键)。

Cayenne Modeler可以为您生成此表+内容:从“工具”菜单中选择“生成数据库架构”,选择正确的连接,然后从下一个对话框中选择“创建PK支持”复选框: - 您将看到生成它所需的SQL - 您可以将它复制并粘贴到您最喜欢的SQL工具中,或者让Cayenne Modeler运行它。

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

我建议咨询Cayenne Modeler documentation,或者更好entire cayenne documentation(因为它非常好),因为所有上述内容都在那里得到了很好的解释。