我有一个实体继承自具有属性的类,假设 E1 继承自 C1。 E1是具体的,C1可以是抽象的,也可以是具体的。 E1 定义了 T1 类型的可嵌入属性,我需要将其映射到 E2 中。
@Embeddable
public class T1 {
...
}
@MappedSuperclass
public abstract class C1 {
private T1 t1;
}
@Entity
public class E1 extends C1 {
// How to define the mapping of t1?
}
我不知道该怎么做。 据我了解,@AttributeOverrides需要定义在C1中定义的字段附近。但映射需要在E1中定义。 有人可以帮忙吗?
我在网上搜索没有成功,最后向 ChatGPT 询问。它建议在E1中重新定义t1,这看起来是个坏主意。
您可以为子实体定义
@AttributeOverride
,如下所示:
@Entity
@AttributeOverride(name = "t1.myField", column = @Column(name = "changed_column"))
public class E1 extends C1 {