如何使用Cayenne解决“生成PK:实体不支持的错误”

时间:2011-01-24 17:41:01

标签: apache-cayenne

当提交对Apache Cayenne上下文的更改时,我会得到如下的异常。

org.apache.cayenne.CayenneRuntimeException: [v.3.0.1 Sep 06 2010 15:09:38] 
Error generating PK : entity not supported: SOME_TABLE

为什么会这样?

2 个答案:

答案 0 :(得分:1)

您需要在Cayenne建模器中设置密钥生成策略。可以在Cayenne reference

中找到文档

通常,Cayenne不会在对象实体类中向用户公开PK。您可以覆盖它,但在使PK有意义之前要仔细考虑。

答案 1 :(得分:0)

作为SOME_TABLE主键一部分的列没有值。因此Cayenne试图生成一个,但不知道如何。

要解决此问题,请执行以下操作之一。

  • 如果该值应该是自动生成的,请告诉Cayenne如何生成该值。
  • 如果不应该生成它,请在提交上下文中的更改之前提供一个值。