小编典典

表格不是由Hibernate创建的

hibernate

我注释了一堆POJO,以便JPA可以使用它们在Hibernate中创建表。似乎所有表都被创建,除了一个非常中央的表,称为“修订”。Revision类具有@Entity(name="RevisionT")注释,因此它将被重命名为RevisionT,因此与MySQL(目标数据库)中的任何保留字都没有冲突。

我删除整个数据库,重新创建它,然后基本上打开和关闭JPA会话。似乎可以毫无问题地重新创建所有表。

为什么在创建的架构中缺少单个表?可以使用哪种工具查看Hibernate产生了什么以及哪些错误?

谢谢。

更新:我尝试创建为Derby DB,并且成功。但是,其中一个字段的名称为“
index”。我@org.hibernate.annotations.IndexColumn用来指定名称而不是保留字。但是,创建该列时始终将其称为“索引”。

这是可疑注释的示例。

    @ManyToOne
    @JoinColumn(name="MasterTopID")
    @IndexColumn(name="Cx3tHApe")
    protected MasterTop masterTop;

而不是创建MasterTop.Cx3tHApe为字段,而是创建MasterTop.Index。为什么忽略该名称?


阅读 221

收藏
2020-06-20

共1个答案

小编典典

回答您的附加问题(可以使用哪种仪器查看Hibernate产生了什么以及哪些错误?)

您可以org.hibernate.tool.hbm2ddl.SchemaExport生成表。

AnnotationConfiguration conf = (new AnnotationConfiguration()).configure();
new SchemaExport(conf).create(showHql, run);

第一个参数使您可以查看此命令生成的HQL CREATE TABLE。第二个是它是否应该实际执行任何修改(即false =空运行)。

因此,与之一起运行(true, false)将完全向您展示Hibernate对表的处理方式,而无需进行任何更改。

2020-06-20