【发布时间】:2015-08-06 15:04:54
【问题描述】:
DataNucleus 的JDO Inheritance 指南提到,在InheritanceStrategy.NEW_TABLE 类关系中,将在超类和子类表之间创建一个外键。运行 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注解只是增加了一个新的外键。
这个可以定制吗?
【问题讨论】:
标签: java jdo datanucleus