繁体   English   中英

hibernate.hbm2ddl.auto值来执行这两个操作,即在数据库架构上创建/更新?

[英]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.autoupdate值不存在,它的确会创建新的模式。

您不需要使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM