hibernate.hbm2ddl.auto Hibernate如何决定何时创建或更新ddl?

tre*_*eno 2 hibernate hsqldb

我们在hibernate和hsqldb中自动创建ddl时遇到了一些问题.

我们用

<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
Run Code Online (Sandbox Code Playgroud)

通常,当我们更改映射对象时,hibernate会自动在db上的模式中创建表,但有时它会拒绝这样做.在这种情况下,我们必须从文件系统手动删除数据库,以说服hibernate重新创建所有表.

有谁知道hibernate如何决定何时在db上重新创建数据模型?我已经读过,它决定在创建SessionFactory时,但是说服hiberbate更新或创建表的确切条件是什么?

Nim*_*sky 5

在你的hibernate配置文件中你有这个选项:

<property name="hbm2ddl.auto">update</property>
Run Code Online (Sandbox Code Playgroud)

更改updatecreate,或者create-drop还是validate,无论你希望它是.

或者,如果您的设置正确并且没有按预期执行操作,请检查日志消息,并在需要时将日志记录级别提高.