创建一个新的Hibernate表

时间:2011-09-30 16:45:31

标签: java hibernate

所以我对Hibernate还不熟悉,而且我正在研究一个已经有一个带有几个Hibernate表的数据库的大型应用程序。我正在开发一个新功能,其中包括一个新的@Entity类,我需要将这些对象存储在一个新表中。该类声明如下:

@Entity
@Table(name="DATA_REQUEST")
public class DataRequest {

//Some fields, nothing fancy

}

DATA_REQUEST表不存在,也没有任何数据存储在其中。我启动了应用程序,期望它会创建表或崩溃,因为它还不存在。这些都没有发生。

所以:我需要手动创建表(轻松完成)吗?或者我是否需要去其他地方告诉Hibernate我需要这个表?我见过hibernate.cfg.xml文件,看起来是个好地方。

3 个答案:

答案 0 :(得分:3)

您需要为“hibernate.hbm2ddl.auto”属性指定“create”。阅读更多详情here。这不建议在生产中使用,但仅用于测试目的。

答案 1 :(得分:1)

至于向表中添加新列

  • 只要不是非空列,您就不需要删除该表或重新启动您的休眠应用

  • 如果您确实想要使用该列,则需要在code / hbm文件中映射该列,因此您必须重新启动hibernate应用程序

  • 如果没有关于hibernate的映射,则列不存在,如果它是非空列,那么底层数据库将拒绝插入/更新,因为hibernate将不包括生成的sql中的列

答案 2 :(得分:1)

来自hibernate文档

hibernate.hbm2ddl.auto

  

创建SessionFactory时,自动验证或将架构DDL导出到数据库。使用create-drop,当SessionFactory显式关闭时,将删除数据库模式。   例如验证|更新|创建|创建降

hibernate Configuration