現在我正在使用每個子類的表來模擬我的數據。我的層次結構的簡化是:每個子類都有表的Hibernate鑑別器列
abstract class Abstract {
/* common data stored in abstract */
}
class ConcreteTypeA1 extends Abstract {
/* extra data stored in concrete_type_a_1 */
}
class ConcreteTypeA2 extends Abstract {
/* extra data stored in concrete_type_a_2 */
}
class ConcreteTypeB extends Abstract {
/* extra data stored in concrete_type_b */
}
所以做了三個外連接,我抓住型摘要的情況下(在現實中,它是十二)。我昨天意識到ConcreteTypeA1和ConcreteTypeA2確實具有相同的額外數據,它們只是行爲不同,所以我想要做的是通過將這兩個類填充到一個表中並使用鑑別器列來減少聯接的數量。我/我可以做到這一點?
class Abstract {
/* common data stored in abstract */
}
abstract class ConcreteTypeA extends Abstract {
/* extra data stored in abstract_type_a */
}
class ConcreteTypeA1 extends ConcreteTypeA {
/* just behavior, no extra data, uses data in abstract_type_a */
}
class ConcreteTypeA2 extends ConcreteTypeA {
/* just behavior, no extra data, uses data in abstract_type_a */
}
class ConcreteTypeB extends Abstract {
/* extra data stored in concrete_type_b */
}
看到這個答案:http://stackoverflow.com/questions/3915026/how-to-mix-inheritance-strategies-with-jpa-annotations-and-hibernate/3916998#3916998 – 2011-06-01 14:33:55