
[英]Can we use hibernate.hbm2ddl.auto=create and hibernate.hbm2ddl.auto=update both in hibernate.cfg.xml file
[英]hibernate.hbm2ddl.auto value to do both the operations i.e create/update on database schema?
我现在想知道,如果架构不存在,是否可以在hibernate中创建数据库架构,否则如果存在则更新架构,并在hbm文件中进行一些修改,为属性hibernate.hbm2ddl.auto设置一些值。
根据我的理解, create value将始终删除先前的架构并创建新的架构? 更新值不会创建新的架构,它只会更新基于hbm.xml的方案。 对?
矿山方案是本地方案,不是生产方案。
如果hibernate.hbm2ddl.auto
的update
值不存在,它的确会创建新的模式。
您不需要使用SchemaExport,只需使用SchemaUpdate。 它的效果很好,如果愿意,您可以在选择提交之前先查看sql。
您确实需要自己创建数据库,或者为此使用一些jdbc。 接着:
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaUpdate;
public static void updateDb(Configuration cfg, boolean printSqlToConsole, boolean commit)
{
SchemaUpdate u = new SchemaUpdate(cfg);
u.setFormat(printSqlToConsole);
u.execute(printSqlToConsole, commit);
}
注意:它不能处理重命名/更改的字段,您需要注意这一点。 但是它可以处理新领域。 未映射的字段将被忽略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.