【问题标题】:Hibernate not creating entity tables if embedding components如果嵌入组件,休眠不会创建实体表
【发布时间】:2009-06-22 22:56:26
【问题描述】:

我使用 Java/Hibernate/MySQL 制作了一个应用程序,但每当我尝试运行它时,它都会抱怨我的一个实体类的表尚未创建。

经过反复试验,我得出的结论是问题出在我映射嵌入式组件的方式上,但我不知道如何解决。

以下是相关的代码:

@Entity
public class Feed {
... //Definition of some properties
  @Embedded
  @AttributeOverrides( {
    @AttributeOverride(name = "type", column = @Column(name = "title-type")),
    @AttributeOverride(name = "mode", column = @Column(name = "title-mode")),
    @AttributeOverride(name = "value", column = @Column(name = "title-value")) })
  public Content getTitle() { ... }

  ...
}

@Embeddable
public class Content {
  ... // There are three properties with bean syntax
      // without any persistence annotation.
}

有谁知道为什么 Hibernate 无法为 Feed 类创建表?我该如何纠正?

提前谢谢你。

编辑:终于明白了;我在专栏中使用了“-”字符这一事实是罪魁祸首。我用下划线替换了这些,一切都很好。

非常感谢您的帮助。

【问题讨论】:

    标签: java hibernate annotations


    【解决方案1】:

    抱歉没有更新,但我终于能够记录必要的调试信息了。

    我为我的专栏选择的名字有问题;我猜想“-”是为算术运算保留的,它不应该在列名中。

    我将它们替换为下划线,问题就解决了。

    非常感谢您的帮助。

    【讨论】:

    • 感谢您发布更新,这正是发生在我身上的事情
    【解决方案2】:

    你确定你覆盖了你所有的可嵌入类属性(虽然当你不覆盖所有的时候它必须工作) 当我将您的代码与我的代码进行比较时,我没有发现任何区别(我只是为我的班级实现了 Serializable ) 你能写出它抛出了什么异常吗?

    【讨论】:

      猜你喜欢
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      相关资源
      最近更新 更多