所以我对Hibernate还不熟悉,而且我正在研究一个已经有一个带有几个Hibernate表的数据库的大型应用程序。我正在开发一个新功能,其中包括一个新的@Entity
类,我需要将这些对象存储在一个新表中。该类声明如下:
@Entity
@Table(name="DATA_REQUEST")
public class DataRequest {
//Some fields, nothing fancy
}
DATA_REQUEST
表不存在,也没有任何数据存储在其中。我启动了应用程序,期望它会创建表或崩溃,因为它还不存在。这些都没有发生。
所以:我需要手动创建表(轻松完成)吗?或者我是否需要去其他地方告诉Hibernate我需要这个表?我见过hibernate.cfg.xml
文件,看起来是个好地方。
答案 0 :(得分:3)
您需要为“hibernate.hbm2ddl.auto”属性指定“create”。阅读更多详情here。这不建议在生产中使用,但仅用于测试目的。
答案 1 :(得分:1)
至于向表中添加新列
只要不是非空列,您就不需要删除该表或重新启动您的休眠应用
如果您确实想要使用该列,则需要在code / hbm文件中映射该列,因此您必须重新启动hibernate应用程序
答案 2 :(得分:1)
来自hibernate文档
hibernate.hbm2ddl.auto
创建SessionFactory时,自动验证或将架构DDL导出到数据库。使用create-drop,当SessionFactory显式关闭时,将删除数据库模式。 例如验证|更新|创建|创建降