例如,我创建了hibernate.cfg.xml并自动生成了类(hbm.xml)。
如果我意识到要从数据库中修改,添加或删除某些内容,通常我必须手动更改数据库,然后手动更改我的hbm.xml源代码。
有没有办法更新而无需删除代码并手动重新生成或修改代码?
编辑:我的意思是直接更改数据库并反映Java代码中的这些更改。对不起,我不太清楚,因为我不知道还有另外一种方式。
答案 0 :(得分:1)
您可以在运行项目时让Hibernate更新您的数据库架构,方法是将此行添加到hibernate.cfg.xml
:
<property name="hibernate.hbm2ddl.auto">update</property>
自动属性选项:
create
- 它创建对应映射或注释的新表。它删除了现有的表和数据。update
- 它保留现有数据和表格。它更新架构。在这里,我们必须注意反对。create-drop
- 它与创建相同,但一旦会话关闭,它就会丢弃所有内容。validate
- 它使用地图或注释验证或匹配模式。它适用于生产环境。如果要从数据库生成.xml映射,可以使用反向JDBC和Hibernate Tools来完成。您只需要指定数据库连接信息。
这个页面有一个很好的例子:
Reverse JDBC with Hibernate Tools
你可以选择你想要的任何东西,但它更好,更便携,易于使用第一个选项。
答案 1 :(得分:0)
好的,所以我找到了方法并且它实际上非常容易。
当我们在Eclipse的hibernate透视图中配置“代码生成配置”时,会保存该配置。因此,当您再次运行它时,它将再次从数据库创建所有“hbm.xml”。
所以:
在数据库中进行所需的更改。
删除包含所有“hbm.xml”的包(不确定是否需要)
转到Hibernate透视图并再次运行配置。
享受。
我更喜欢这种方式,因为我不需要编辑许多方法和Java逻辑。我可以在我的数据库中创建一些关系或添加一些新列。显然,只在开发时。