2010-06-02 105 views
2

我试图使用Cayenne实体管理器将对象存入数据库。不幸的是我得到以下错误:与Cayenne实体管理器问题

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 

任何想法我怎么能解决这个问题?谢谢。

回答

4

在出现错误的情况下,在我看来,您可以从Cayenne Modeler中选择“默认”“PK生成策略”(点击您的数据库实体以查看具有该选项的组合框)。这意味着Cayenne希望在您的模式中存在一个填充的“auto_pk_support”表(以便能够生成并跟踪主键)。你可以从Tools菜单中选择“Generate DB Schema”,选择正确的连接,然后从下一个对话框中只选择复选框“Create PK Support”: - 你会看到生成它所需的SQL - 您可以将其复制并粘贴到您最喜欢的SQL工具中,或让Cayenne Modeler运行它。

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

我建议咨询Cayenne Modeler documentation或更好的entire cayenne documentation(因为它非常好),因为所有上述项目都很好地解释了那里。

+0

非常感谢。我的一些测试用例中遇到了问题。执行'mvn test'时我没有收到任何错误信息。现在它可以工作。 – High6 2011-08-18 08:06:18