写这个案子会更容易解释。
我正在使用Seam 2.3.1 v Hibernate JPA 2.0和我们的项目。我有一个基础Person
实体类。
@Entity
@Name("person")
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "person")
public class Person extends BaseEntity {
private String name;
private String surName;
private String email;
private String phone;
// getter & setters
}
我还有另外3个实体从人员@Inheritance(strategy = InheritanceType.JOINED)
延伸:Personel
,Musteri
,DisPaydas
@Entity
@Name("personel")
public class Personel extends Person {
private String appellation;
// getter & setters
}
我想在我的bean中列出personels,musteris和dispaydas但是当我在我的Group Entity中设置它们时,我想将它们保存为Person。
实际上在DB中,person_id和personel_id之间没有区别,它们是相同的。但是,当我列出它时,它们是List<Personel>
总结:
我想从List<Person>
获取List<Personel>
或来自Person
对象的Personel
。
答案 0 :(得分:0)
您必须在@Id
的{{1}}课程中定义@Column
和Person
。
但是,由于该列在子实体中具有不同的名称,因此您需要使用@AttributeOverride
更改它以指向person_id
personel_id
。
在父级中使用@Column
和在子级中使用@DiscriminatorColumn
并不会有什么坏处,但我认为Hibernate不需要这些。