我使用 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 不会创建实体表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1029811/