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

How to customize the foreign key names used in DataNucleus JDO inheritance hierarchies?

DataNucleus 的 JDO Inheritance 指南提到在 InheritanceStrategy.NEW_TABLE class 关系中,将在 superclass' 和 sub[=26= 之间创建一个外键]' 表。 运行 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 { ... }

给定那些 classes,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 注释到 subclass 只是添加一个新的外键。

这个可以定制吗?

this page 的脚部展示了如何使用 XML 为连接到 superclass 定义外键。

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