gpt4 book ai didi

java - SuperClass 属性上的 JPA 覆盖注释

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:02:33 27 4
gpt4 key购买 nike

我有 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 a Basic (whether explicit or default) property or field or Id 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 a Basic mapping or Id 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com