我對使用Java和Hibernate的對象關係映射有一個奇怪的難題。不尋常的Hibernate繼承映射
我們有一個現有的模式,它看起來是這樣的:
create table foo (id int8, /* ... */ primary key (id));
create table bar (id int8, foo int8, /* ... */ primary key (id));
alter table bar add constraint fk_foobar foreign key (foo) references foo;
通常情況下,你會使用ManyToOne
關係映射此。
class Foo { /* ... */ }
class Bar { private Foo foo; /* ... */ }
但在我的球隊裏的朋友想這映射到繼承關係:
class Foo { /* ... */ }
class Bar extends Foo { /* ... */ }
有沒有辦法使用Hibernate拉這一關?
編輯:重要的一點是,該表bar
有一個外鍵列foo
,這是從bar
的標識列不同。
我使用NHibernate的(休眠的端口)與C#,答案是肯定的。在NHibernate文檔中有一些例子,我確定Hibernate – David 2010-02-04 16:25:38
也存在相同的問題嗎?請提供反饋。 – Bozho 2010-02-11 12:38:15
我很確定答案是否定的。我敢打賭,Hibernate是硬連線的,所以如果你有繼承關係,派生類表中的主鍵必須是基類表的外鍵。 – leedm777 2010-03-08 06:20:41