gpt4 book ai didi

java - 嵌入式单表映射

转载 作者:行者123 更新时间:2023-11-30 08:26:17 25 4
gpt4 key购买 nike

我在建模 hibernate 映射时遇到了问题。这是我所拥有的:

@Entity
@Table
public class Entry {

@Id private long id;
@Embedded private Content content;
...
}

@MappedSuperclass
@DiscriminatorColumn(name="content_type")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public abstract class Content {

@Column(name="content_type") private String type;
...
}

@Embeddable
@DiscriminatorValue("A")
public class AContent extends Content {
...
}

@Embeddable
@DiscriminatorValue("B")
public class BContent extends Content {
...
}

我希望将 Content 的所有子类映射为嵌入到 Entry 类中。换句话说,结果我想要一个条目表,其中包含内容的所有子类的列。

目前持续的 Entry 测试说:

javax.persistence.PersistenceException: org.hibernate.InstantiationException: 
Cannot instantiate abstract class or interface: : foo.bar.Content

所以看起来加载失败是因为它没有获取 AContent,而是尝试实例化抽象内容。有什么想法吗?

最佳答案

规范说...

一个实体可以继承自另一个实体类。实体支持继承、多态关联和多态查询。

它没有说明可嵌入对象是可继承的,因此不支持它们的继承。

关于java - 嵌入式单表映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21630851/

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