
[英]JPA AttributeOverride for Embeddable class with Entity type fields
[英]Enforcing inclusion of fields in JPA @Entity class
我有多個用@Entity
注釋的類。 一半的類在其中包含這三個附加字段: specialFieldA
, specialFieldB
和specialFieldC
; 另一半沒有。
是否有JPA方法來確保將來的課程中包含這三個字段? 即,如果隊友希望使用其中的specialFieldA
, specialFieldB
和specialFieldC
來創建另一個類,是否可以強制使用這三個字段?
我曾考慮過使用接口,但由於只能定義方法,因此它似乎不是正確的策略。
我不能使用抽象類,因為這些類已經擴展了父類。
我最終創建了一個只包含那些特殊字段的單獨的類,並使用@Embeddable
對該類進行了@Embeddable
。 然后在我的實體中,將該新類作為字段包括在內,並在其上添加@Embedded
批注。
使像特殊字段這樣的抽象類具有@MappedSuperClass
批注
@MappedSuperClass
public abstract class SpecialFields {
@Column(name = "specialFieldA")
private String specialFieldA;
@Column(name = "specialFieldB")
private String specialFieldB;
@Column(name = "specialFieldC")
private String specialFieldC;
}
您想要在其中包含這些字段的所有附加類都從此類擴展
@Entity
@Table(name ="sample")
public class Sample extends SpecialFields implements Serializable{
//All three fields are part of this class and automatically maps to date base columns with same name..
}
現在,所有具有這三個字段的類都必須從SpecialFields類擴展。 其他不是。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.