如何从commons包继承和替换@entity?

ux6nzvsh  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(246)

我有一个 @Entity 在commons包中:

@Entity("person")
public class Person {
    //fields...
}

在一个实现应用程序中,我想用一些自定义字段扩展这个实体。但我还是想Map到表 person :

@Entity("person")
public class Person extends org.commons.Person {
    //additional fields
}

结果:

Caused by: org.hibernate.DuplicateMappingException: The [Person] and [CustomPerson] entities 
share the same JPA entity name: [person] which is not allowed

那么,我如何扩展这个实体,并告诉spring以某种方式“忘记”父实体,以便只有我的 CustomPerson 是否已加载?

8iwquhpp

8iwquhpp1#

问题是您为两个实体指定了相同的名称。你不必那么做。您可以使用@entity、@table和@inheritation(默认情况下采用单表继承)注解父实体,而仅使用@entity注解子类实体:

@Entity
@Table("person")
@Inheritance
public class Person {
    //fields...
}
@Entity
public class CustomPerson extends Person {
    //additional fields
}

相关问题