2
我正在使用Spring引导,弹出JPA并且有以下问题:我创建了一些类“B”,它从JAR扩展了某些类“A” ,在类“B”上放上@Entity
和@Table
注解(我不能在类“A”上做同样的事情),但是当Spring/Hibernate创建表时,只包含类“B”中的字段。即在数据库JPA注释将包含来自非实体超类的字段(来自JAR!)
+--------+ +--------+--------+
| fieldB | but I want this to be made | fieldA | fieldB |
+--------+ +--------+--------+
创建
// some class from JAR
// not an Entity
class A {
String fieldA;
}
@Entity
@Table(name = "B")
class B extends A {
String fieldB;
}
表如何管理的?有没有可以放在B类上的JPA注解来解决这个问题?
编辑:如果@AttributeOverride
注释的解决方案,如何来标记被覆盖的领域作为Id
时@Id
注释不能在类外被放?
是的,我试过,但在这种情况下的问题是,我需要实施setter太,我想跳过。超类没有setter,因为它使用builder来安装它。 – milosdju
这是真的.Builder-pattern和JPA不是最好的朋友。另外两个“解决方案”是映射这些值,并用反射(我知道......)从B构建setter。 – jklee