create 自动创建表是一个好习惯吗?-6ren"> create 自动创建表是一个好习惯吗?-我知道添加 "hbm2ddl.auto"=创建Hibernate 将创建自动从 hbm/注释中读取映射的表。请告诉我这是否是一个值得遵循的良好做法,为什么? 最佳答案 如果您在测试环境中使用它(如果可-6ren">
gpt4 book ai didi

hibernate - 让 Hibernate 使用 create 自动创建表是一个好习惯吗?

转载 作者:行者123 更新时间:2023-12-02 11:59:34 25 4
gpt4 key购买 nike

我知道添加 "hbm2ddl.auto"=创建Hibernate 将创建自动从 hbm/注释中读取映射的表。请告诉我这是否是一个值得遵循的良好做法,为什么?

最佳答案

如果您在测试环境中使用它(如果可能,通过使用内存数据库,例如 h2 - 是的,它只是一个 jar 文件),这可能是一个好主意(确保您没有任何与生产相关的设置)

从 Hibernate In Action 书中检索到的建议也可以应用

We have seen Hibernate users trying to use SchemaUpdate to update the schema of a production database automatically. This can quickly end in disaster and will not be allowed by your DBA.

如果你只是想生成模式,更喜欢使用SchemaExport(hbm2ddl幕后的类)

AnnotationConfiguration configuration = new AnnotationConfiguration();

configuration
.addAnnotatedClass(<TYPE_YOUR_CLASS>.class)
.setProperty(Environment.USER, <TYPE_YOUR_USER>)
.setProperty(Environment.PASS, <TYPE_YOUR_PASSWORD>)
.setProperty(Environment.URL, <TYPE_YOUR_URL>)
.setProperty(Environment.DIALECT, <TYPE_YOUR_DIALECT>)
.setProperty(Environment.DRIVER, <TYPE_YOUR_DRIVER>);

SchemaExport schema = new SchemaExport(configuration);
schema.setOutputFile("schema.sql");

schema.create(<DO_YOU_WANT_TO_PRINT_TO_THE_CONSOLE>, <DO_YOU_WANT_TO_EXPORT_THE_SCRIPT_TO_THE_DATABASE>);

您还可以根据目标机器启用Java属性

-Dprofile=development

-Dprofile=production

显示了一种方法 here (虽然使用Spring,但Spring内置了对Hibernate的支持)

关于hibernate - 让 Hibernate 使用 <property name ="hbm2ddl.auto">create</property> 自动创建表是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3757196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com