Apache cayenne 继承关系

Apache cayenne 继承关系,apache-cayenne,Apache Cayenne,我使用的是Cayenne 4.1,希望使用单表继承,但我遇到的问题是,在使用Modeler时,我在Modeler中创建的DB关系总是会被删除:-/ 详细内容: 我有表和实体photo(超类),我有子类photoA和photoB,在photo中我有一个字段(限定符),它的id是class a或class B,因为不可能直接在DB中维护这样一个矛盾的关系,我在Modeler中维护这个关系,所以我可以在实体类中使用它,这一切都很好,除了运行reengineer数据库模式函数时,关系被删除:-/ …但也

我使用的是Cayenne 4.1,希望使用单表继承,但我遇到的问题是,在使用Modeler时,我在Modeler中创建的DB关系总是会被删除:-/ 详细内容: 我有表和实体photo(超类),我有子类photoA和photoB,在photo中我有一个字段(限定符),它的id是class a或class B,因为不可能直接在DB中维护这样一个矛盾的关系,我在Modeler中维护这个关系,所以我可以在实体类中使用它,这一切都很好,除了运行reengineer数据库模式函数时,关系被删除:-/

…但也许我理解错了这个概念:-(


Markus

如果一切正常,您只需满足Cayenne DB导入功能的限制。它只允许您自定义对象层,而不是DB,因为它不跟踪更改,只在每次运行时将您的模型与DB状态进行比较

以下是您可以采取的措施:

  • 不要对需要自定义的部分使用DB导入。这意味着您需要手动维护您的模型。这可能很难,因为您还需要排除模型中所有连接的部分(这可能是您的所有模型)。不是很好的选择

  • < L> > P>或是一个更好的选择。您可以尝试从建模器DB导入切换到Cayen Maven(或Gradle)插件。它支持以名称来排除关系,它不容易建立为建模器,但功能上是标准的。这里有一些相关文档的链接:
能否请您提供有关手动创建的关系的更多信息?可能是您的数据映射的简化XML?它是否以某种方式用作继承的限定符?操作系统是否是一种普通关系,应该指向a或B实体,而不是继承设置的直接部分?您好,下面是电子XML