我有 SuperClass,我在其中定义了我的属性,我想在 SuperClass 属性之一上再应用一个注释。
@MappedSuperclass
public class CartBaseEntity {
private String cartName;
@Column(name = "cart_name")
public String getCartName() {
return cartName;
}
public void setCartName(String cartName) {
this.cartName = cartName;
}
}
我的子类在下面:
@Entity
@Table(name = "CART2")
public class CartEntity extends CartBaseEntity implements Serializable {
private Set<Items> items;
@Basic(fetch = FetchType.LAZY)
@Override
public String getCartName() {
return super.getCartName();
}
}
我试图覆盖 'cartName' 列并想在其上添加 @Basic 注释。有可能还是有任何解决方法? TIA
最佳答案
是的,可以将 @AttributeOverride
注释应用于子类:
@Entity
@Table(name = "CART2")
@AttributeOverride(name = "cartName", column = @Column(name="CART_NAME"))
public class CartEntity extends CartBaseEntity implements Serializable {
...
}
更新:以下是 JPA 2.1 规范关于覆盖映射父类(super class)中的列的内容:
11.1.4 AttributeOverride Annotation
The
AttributeOverride
annotation is used to override the mapping of aBasic
(whether explicit or default) property or field orId
property or field.The
AttributeOverride
annotation may be applied to an entity that extends a mapped superclass or to an embedded field or property to override aBasic
mapping orId
mapping defined by the mapped superclass or embeddable class (or embeddable class of one of its attributes).
关于java - SuperClass 属性上的 JPA 覆盖注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47332021/