簡體   English   中英

強制將字段包含在JPA @Entity類中

[英]Enforcing inclusion of fields in JPA @Entity class

我有多個用@Entity注釋的類。 一半的類在其中包含這三個附加字段: specialFieldAspecialFieldBspecialFieldC 另一半沒有。

是否有JPA方法來確保將來的課程中包含這三個字段? 即,如果隊友希望使用其中的specialFieldAspecialFieldBspecialFieldC來創建另一個類,是否可以強制使用這三個字段?

我曾考慮過使用接口,但由於只能定義方法,因此它似乎不是正確的策略。

我不能使用抽象類,因為這些類已經擴展了父類。

我最終創建了一個只包含那些特殊字段的單獨的類,並使用@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM