JPA 可嵌入并通过 Hibernate 继承

问题描述 投票:0回答:1

我有一个实体继承自具有属性的类,假设 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,这看起来是个坏主意。

java hibernate jpa inheritance
1个回答
0
投票

您可以为子实体定义

@AttributeOverride
,如下所示:

@Entity
@AttributeOverride(name = "t1.myField", column = @Column(name = "changed_column"))
public class E1 extends C1 {

© www.soinside.com 2019 - 2024. All rights reserved.