扩展非抽象的JPA实体类

时间:2018-10-24 13:08:57

标签: java hibernate jpa

我一直在网上寻找一些答案,但到目前为止还没有运气。

我需要扩展现有实体以添加一些字段。

说我们有一个已经在项目中使用的类

@Entity
public class SampleEntity {
    @Id 
    private Long id;
    // some fields
}

我想创建另一个,添加一些其他字段。像

@Entity
public class SampleExtendedEntity extends SampleEntity {
    // some more fields
}

我正在寻找一种解决方案,该解决方案将使用这些附加字段和SampleEntity的外键创建一个新的数据库表。理想情况下,此外键也应该是SampleExtendedEntity

的主键

一种非常简单的方法是使用组合和@OneToOne,但是由于语义,我真的很想使用继承。 不幸的是,@MappedSuperclass@Inheritance对我不起作用,因为我扩展的实体是可以(并且)用作独立类的类。任何建议将不胜感激

1 个答案:

答案 0 :(得分:-1)

@Entity
public class SampleExtendedEntity extends SampleEntity {
    // some more fields
int foreignKey=-1;

public SampleExtendedEntity(int key){
this.foreignKey=key;
}

public int getforeignKey(){
return foreignKey();
}
public static void main(String[] args){
SampleExtendedEntity myEntity= new SampleExtendedEntity(2);
//SampleEntity  needs a getter method for ID
System.out.println(myEntity.getForeignKey()+" "+myEntity.getId());

}

}