gpt4 book ai didi

java - 如何自定义 DataNucleus JDO 继承层次结构中使用的外键名称?

转载 作者:行者123 更新时间:2023-11-30 08:01:35 26 4
gpt4 key购买 nike

JDO Inheritance DataNucleus 指南提到,在 InheritanceStrategy.NEW_TABLE 类关系中,将在父类(super class)表和子类表之间创建外键。运行 DataNucleus 模式生成器,我确实看到正在生成这样的外键。但我无法发现的是如何自定义这些外键的名称。

例如:

@PersistenceCapable(table = "login_identities")
@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
public abstract class AbstractLoginIdentity { ... }

@PersistenceCapable(table = "email_login_identities")
@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
public class EmailLoginIdentity extends AbstractLoginIdentity { ... }

给定这些类,DataNucleus 将生成如下外键(对于 PostgreSQL):

-- Constraints for table "email_login_identities" for class(es) [com.trickle.api.accounts.EmailLoginIdentity]
ALTER TABLE "email_login_identities" ADD CONSTRAINT "email_login_identities_FK1" FOREIGN KEY ("id") REFERENCES "login_identities" ("id") ;

我找不到任何方法来更改“email_login_identities_FK1”约束的名称。向子类添加 @ForeignKey 注解只是添加一个新的外键。

可以定制吗?

最佳答案

this page的脚展示如何使用 XML 定义用于连接父类(super class)的外键。

我在注释中看不到这样做的方法(因为@Inheritance没有@Join,并且@Join没有@ForeignKey) ...但是我永远不会想将 ORM 定义硬编码到 Java 类中。我假设您可以通过 Apache JDO 人员请求这样的注释功能。

关于java - 如何自定义 DataNucleus JDO 继承层次结构中使用的外键名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31846228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com