2014-03-31 25 views
0

我有這種奇特層次結構:休眠inheritacne JOINED + TABLE PER CLASS

  • A是抽象的(但它是一個實體)
  • B(摘要)和C二者延伸A類(TABLE_PER_CLASS) 。
  • B也擴展了類DE,但這次它被加入。

我想A類的ID是所有其他人的ID

可以這樣做嗎?

我收到奇怪的ID錯誤。任何人都可以告訴我如何映射?

這是我如何做到了:

@Entity 
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) 
public abstract class A { 
     @Id 
     @GeneratedValue(strategy = GenerationType.TABLE) 
    protected Integer id; 
} 

C類:

@Entity 
@Table(name = "managers") 
public class C extends A { 

B類:

@Entity 
@Table(name = "bb") 
@Inheritance(strategy = InheritanceType.JOINED) 
@DiscriminatorColumn(name = "discriminator", discriminatorType = DiscriminatorType.STRING) 
public abstract class B extends A { 

類C,d:

@Entity 
@Table(name = "cc"/"dd") 
@DiscriminatorValue("CC"/"DD") 
public class C (or D) extends B { 
+0

你看過了[混合連接和表具體類繼承](http://stackoverflow.com/questions/5977717/mixing-joined-and-table-per-concrete-class-inheritance)? –

回答