我有两列将使用@GeneratedValues,但是当我这样放置它们时,它会出错; " 异常描述:类 [class Testing] 有两个 @GeneratedValues:用于字段 [Testing.SEQ_NO] 和 [Testing.ID]。只允许一个。" ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我有多个用@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.