0
我有一個存在的遺留DDL,我必須映射到JPA。帶外鍵的實體對幻影表和實體的引用
我已經將USERS SQL表映射到USERS JPA實體。
create table USERS (
-- a bunch of fields
primary key (id),
foreign key FK_USERS_CONTACT (CONTACT_ID) references CONTACTS(ID),
foreign key USER_SPEAKS_NATIVE_LANGUAGE (NATIVE_LANGUAGE) references LANGUAGES(ID),
foreign key USER_HAS_PREFERRED_TIMEZONE (PREF_TIMEZONE_ID) references TIME_ZONES(ID),
foreign key USER_OWNS_USAGE (USAGE_OWNER_ID) references USAGE_OWNERS(ID)
);
但是,有些FK存在於我不想在任何JPA類中描述的存在SQL表中。最好的解決辦法是做到以下幾點:
@OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY)
@JoinColumn(nullable = false, name = "USAGE_OWNER_ID")
private Object usageOwners;
...基本上使用啞/模體對象可能反映任何表引用。但JPA中不允許原始對象類型。
那麼我怎麼能描述&滿足USERS表的外鍵約束而不描述JPA中的任何SQL表。我只想描述FK對這些表的引用,但不描述實際的SQL表。