【问题标题】:Can Hibernate's @DiscriminatorColumn mapping可以Hibernate的@DiscriminatorColumn映射吗
【发布时间】:2014-08-14 13:15:09
【问题描述】:

我有一个SINGLE_TABLE 继承策略,我需要在我的表中设置一个@DiscriminatorColumn.

我的问题是:我将用作 @DiscriminatorColumn 的列可以映射到我的 java 实体中吗???

我记得有一次它确实很麻烦,我明确地为鉴别器创建了另一个列。

【问题讨论】:

    标签: java hibernate jpa hibernate-mapping


    【解决方案1】:

    是的,您可以映射您的鉴别器列。一定要映射到相同的列名,并且映射的鉴别器是correct type

    @DiscriminatorColumn(name = "type")
    public class RootClass{
    
      @Column(name="type")
      private String type;
    

    【讨论】:

    • 嗯...你知道为什么 discriminatorType=DiscriminatorType.CHAR 被 Hibernate 认为是“不安全的”并且它会抛出异常吗!
    • 不,我不知道它被认为是不安全的,我无法解释为什么 Hibernate 如此挑剔。它适用于字符串吗?
    • 这可能是a hibernate bug。如果您无法重新定义您的列,您可以尝试避免该错误。您使用的是休眠 3.6 吗?您是否尝试过使用显式的 @DiscriminatorValue 值用于 concete 类?您是否尝试过切换到更高的 Hibernate 版本?
    猜你喜欢
    • 1970-01-01
    • 2016-01-15
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多