当前位置: 首页 > 面试题库 >

表格不是由Hibernate创建的

徐俊楚
2023-03-14
问题内容

我注释了一堆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。为什么忽略该名称?


问题答案:

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

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

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

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

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



 类似资料:
  • 问题内容: 这个问题不太可能对将来的访客有所帮助;它仅与较小的地理区域,特定的时间段或极为狭窄的情况(通常不适用于Internet的全球受众)有关。要获得使该问题更广泛适用的帮助,请访问帮助中心。 7年前关闭。 我有带有Hibernate和Spring框架的Maven项目。我希望Hibernate自动创建表,但是只是删除所有现有表,并且不创建所需的表。在会话工厂初始化期间不会引发任何异常,但是当我

  • 我正在使用使用Spring3.1和Hibernate4.2的应用程序。对于空间功能,我们计划将hibernate spatial与postgis结合使用。但hibernate spatial使用bytea类型而不是几何体创建列。我无法找出这一切的根本原因。我已经花了几天时间解决问题,但没有成功。 hibernate-spatial-4.0。罐子是用的。 我正在使用下面的hibernate。属性文件

  • 启动程序(启动TomCat)后,模式中没有创建表,但是必须自动创建表“player”。 我检查了Hibernate配置,但找不到问题所在。我尝试将hbm2ddl.auto更改为hibernate.hbm2ddl.auto(也包括创建、创建-删除等),但没有帮助。 如果有什么想法,请告诉我。谢了。 实体类: 存储库类: Hibernate配置: pom.xml的完整项目代码可通过链接:https:/

  • 我编写了一个映射,如下所示: 当我运行应用程序时,会出现如下错误: 2012-05-15 17:12:38,651--WARN--失败的模式语句:创建表雇员(Id整数不为空auto_increment,版本日期时间不为空,FirstName nvarchar(300),LastName nvarchar(300),雇员类型nvarchar(300),主键(Id),唯一(firstName,last

  • 我刚开始使用hibernate,总是会遇到这样的错误: 错误:HHH000388:不成功:创建表用户(id bigint not null auto_increment,mail varchar(255),passwort varchar(255),primary key(id))错误:从存储引擎获取错误-1 这是我的映射类:

  • PostgreSQL 使用 CREATE TABLE 语句来创建数据库表格。 语法 CREATE TABLE 语法格式如下: CREATE TABLE 是一个关键词,用于告诉数据库系统将创建一个数据表。 表名字必需在同一模式中的其它表、 序列、索引、视图或外部表名字中唯一。 CREATE TABLE 在当前数据库创建一个新的空白表,该表将由发出此命令的用户所拥有。 表格中的每个字段都会定义数据类型