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