hibernate.hbm2ddl.auto 对应的值有:
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,先drop()删除表结构),再重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop 也是加载hibernate时创建数据库表结构,差别是在系统关闭前删除表结构
update 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新
默认情况下是create,所以正常情况下都需要进行设置。
在本机开发调试初始化数据的时候可以选择create、update等。
但是网站发布正式版本的时候,对数据库现有的数据或表结构进行自动的更新是很危险的。此时此刻应该由DBA同志通过手工的方式进行后台的数据库操作。
hibernate.hbm2ddl.auto的值建议是“none”或“validate”。“validate”应该是最好的选择:这样 spring在加载之初,如果model层和数据库表结构不同,就会报错,这样有助于技术运维预先发现问题。