我在 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)中的列的内容:

关于java - SuperClass 属性上的 JPA 覆盖注释,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47332021/

10-11 05:56