Java 是否有一个简单的工作流来从具有hibernate映射的类生成数据库架构?
我想定义我的对象,然后使用hibernate从中生成我的ddl。但hibernate的唯一真正工作流似乎是生成一个datbase模式,然后对其进行反向工程。我想做一些毫无意义的事情吗?是的,有一个属性Java 是否有一个简单的工作流来从具有hibernate映射的类生成数据库架构?,java,hibernate,orm,top-down,Java,Hibernate,Orm,Top Down,我想定义我的对象,然后使用hibernate从中生成我的ddl。但hibernate的唯一真正工作流似乎是生成一个datbase模式,然后对其进行反向工程。我想做一些毫无意义的事情吗?是的,有一个属性hibernate.hbm2ddl.auto。报告说: 创建SessionFactory时自动验证架构DDL或将其导出到数据库。使用createdrop,当SessionFactory显式关闭时,数据库模式将被删除 e、 g.验证|更新|创建|创建删除 定义此属性有多种方法,具体取决于您如何配置Se
hibernate.hbm2ddl.auto
。报告说:
创建SessionFactory时自动验证架构DDL或将其导出到数据库。使用createdrop,当SessionFactory显式关闭时,数据库模式将被删除
e、 g.验证|更新|创建|创建删除
定义此属性有多种方法,具体取决于您如何配置SessionFactory
。hibernate方法是简单地添加:
<property name="hibernate.hbm2ddl.auto">update</property>
更新
但hibernate的唯一真正工作流似乎是生成数据库模式,然后对其进行反向工程
不,绝对不是。历史上,Hibernate支持几种方法:
- 自上而下:从对象模型开始,然后使用XML文件或注释创建映射元数据,然后使用Hibernate的
工具生成模式hbm2ddl
- 自下而上:从现有数据库开始,使用
和hbm2hbmxml
从数据库模式生成映射和Java类(或仅带注释的Java类)hbm2java
- Middle out:您开始编写HibernateXML映射,并分别使用
和hbm2ddl
生成DDL和Java类hbm2java
- 中间会合:您有一个现有的Java模型和一个现有的数据库。Hibernate工具在这里帮不了什么忙,您很可能必须手工编写映射,并对数据库或Java代码进行重构,或者使用某种桥。这是最糟糕的情况
hbm2ddl
(也称为SchemaExport
,它是实现它的类的名称)的工具。有几种方法可以使用它:
- 您可以通过编程方式运行
SchemaExport
- 通过将属性
设置为适当的值,可以在创建时启用模式的自动导出hibernate.hbm2ddl.auto
- 您可以使用
Ant任务
- Hibernate核心参考指南
- Hibernate工具参考指南