【问题标题】:Hibernate: How can I join 2 classes in one table?Hibernate:如何在一张表中加入 2 个类?
【发布时间】:2010-01-27 07:45:34
【问题描述】:

所以,我对 Hibernate 还很陌生,但遇到了一个问题。

我有一个抽象类(超类,Super 类)和 5 个子类,它们应该使用 Super 类的属性并添加一个新的属性(一个新列)

那么我该怎么做呢?我应该从 java 扩展类 Super,还是使用 JPA 注释加入类就足够了。

这是第二个问题。我怎样才能有 2 个班级的 1 张桌子。 有人(比我聪明)告诉我使用 @JoinTable,但我使用 google 进行搜索时,我认为我需要使用 @Inheritance(strategy=InheritanceStrategy.JOINED)

我也可以使用 @JoinTable 吗?

【问题讨论】:

    标签: java hibernate orm jpa


    【解决方案1】:

    你的例子是继承:

    1. 在您的Super 上添加@Inheritance(stretegy=InheritanceStrategy.SINGLE_TABLE) 注释
    2. 添加@DiscriminatorColumn 注释(并设置其属性namediscriminatorType)(同样在Super 上)
    3. 在每个子类extendSuper上,添加注解@DiscriminatorValue,每个子类的值不同。

    【讨论】:

      【解决方案2】:

      如果你是Hibernate的新手,你应该阅读它的documentation.继承策略解释here和使用注解来表达继承策略解释here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-25
        • 2021-11-10
        • 2012-08-22
        • 2018-07-26
        • 1970-01-01
        • 2017-05-11
        • 2021-07-05
        • 2015-05-12
        相关资源
        最近更新 更多