hibernate 自动建表 保存老数据
- 作者: 小明________________
- 来源: 51数据库
- 2021-01-30
漏了"hibernate",若没写全会被框架认为没配置,所以不会导出schema;
关于update和create:
(1)update 但schema发生改变时进行更新,比如添加字段,保留原有数据;
(2)create 每次运行重新创建schema,如果表存在,先删除再创建,原有数据丢失;
update也会创建表,以下是配置>update<执行的代码(hibernate的源码): if="" (="" table.isphysicaltable()="" )="" {="" tablemetadata="" tableinfo="databaseMetadata.getTableMetadata(" table.getname(),="" (="" table.getschema()="=" null="" )="" defaultschema="" :="" table.getschema(),="" (="" table.getcatalog()="=" null="" )="" defaultcatalog="" :="" table.getcatalog(),="" table.isquoted()="" );="" if="" (="" tableinfo="=" null="" )="" {="" script.add(="" table.sqlcreatestring(="" dialect,="" mapping,="" defaultcatalog,="" defaultschema="" )="" );="" }="" else="" {="">执行的代码(hibernate的源码):>
dialect,
mapping,
tableInfo,
defaultCatalog,
defaultSchema
);
while ( subiter.hasNext() ) {
script.add( subiter.next() );
}
}
Iterator
while ( comments.hasNext() ) {
script.add( comments.next() );
}
}
}
表若不存在,也会被创建.
推荐阅读