80.2 使用Hibernate初始化数据库

你可以显式设置spring.jpa.hibernate.ddl-auto。标准的Hibernate属性值有nonevalidateupdatecreatecreate-drop。Spring Boot根据你的数据库是否为内嵌数据库来选择相应的默认值。如果是内嵌型的则默认值为create-drop,否则为none。通过查看Connection类型可以检查是否为内嵌型数据库。hsqldb、h2和derby是内嵌的,其他都不是。当从内存数据库迁移到一个真正的数据库时,你需要当心,在新的平台中不能对数据库表和数据是否存在进行臆断,你也需要显式设置ddl-auto,或使用其他机制初始化数据库。

通过启用org.hibernate.SQL记录器,你可以输出模式创建。如果你启用了debug模式,这些会自动完成。

此外,如果Hibernate从零开始创建模式(ddl-auto属性被设置为create或者create-drop),启动时处于classpath根目录下的import.sql文件会被执行。这在demos或测试时很有用,但在生产环境中你可能不期望这样。这是Hibernate的特性,和Spring没有一点关系。

最后更新于