gpt4 book ai didi

java - 使用 JPA (+Hibernate) 的可嵌入抽象类

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:53 26 4
gpt4 key购买 nike

我正在尝试实现这个 JPA 模型:

  • Owner 是一个 Entity。它有 @EmbeddedAbstractParent 的实例。
  • AbstractParent@Embeddable。它是一个抽象类,而这个类有两个 child 。 child 是具体类。

异常是:无法实例化抽象类或接口(interface):AbstractParent

似乎(1)我需要组件继承,但是(2)组件继承在JPA中是不允许的,(3)它没有在Hibernate中实现。你能确认(1)、(2)和(3)是正确的吗?如果它们是正确的,您能否提供任何建议或解决方法?我使用 hibernate-jpa 2.0、hibernate-core 3.5.1、hibernate-core-annotations 3.2.0

最佳答案

要回答为什么可能需要此实现的问题:这是一个示例。数据库表有关于计算机的信息,计算机有显示器,如果显示器是LCD那么它的参数是“像素”。如果显示器是电视,那么它的参数是“lines”。所有监视器也有参数“权重”该表的数据结构包括:id、RAM、monitor_indicator、weight、lines、pixels。

这个数据结构可以在类中实现:

  • Computer {id, RAM, display}
    • 它有关于计算机的信息。
  • 抽象类 AbstractDisplay {weight}
    • 它包含有关显示器的一般信息。
  • LCDDisplay {pixels} 继承类 AbstractDisplay
    • 它具有 LCD 特定信息(像素)。
  • TVDisplay {lines} 继承类 AbstractDisplay
    • 它有电视特定信息(台词)。

基本思想是主类 (Owner/Computer) 嵌入另一个类 (Parent/AbstractDisplay),根据嵌入类的类型可以有不同的参数集。

关于如何实例化嵌入式抽象类:与现在在JPA中实例化抽象类的方式相同:在上面的例子中“monitor_indicator”表示应该使用的子类,这个字段必须在类Computer被实例化时存在实例化。

关于java - 使用 JPA (+Hibernate) 的可嵌入抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6976065/

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