Tag: hbm2ddl

Hibernate,MySQL Views和hibernate.hbm2ddl.auto = validate

我可以通过将它们视为表来使用Hibernate中的MySQL视图 – 即。 该实体与为表创建的实体没有什么不同。 但是,当Hibernate设置为validation模型时,我的应用程序将不会部署,因为它无法找到View,因为它假定它是一个表。 是否可以使用Hibernate Entities并启用部署时间validation(hibernate.hbm2ddl.auto = validate)? 谢谢。

使用hibernate注释导出模式

我正在使用hibernate注释,我想导出我的数据库架构。 类似于使用hbm xml文件的schemaexporttask。

如何使用Hibernate创建数据库架构

阅读Hibernate之后:hbm2ddl.auto =生产中的更新? 出现了一些问题。 首先,我使用Hibernate的原因是独立于数据库供应商(不需要编写10个版本的“相同”sql查询,例如.tsql vs sql)。 在创建数据库模式(生产环境)时出现我的问题。 据我所知,我有两种选择。 hbm2dll =更新 纯sql(ddl)脚本。 第一种选择在上面的主题中被广泛讨论。 第二种选择是坏的,因为这意味着我回到了我的第一个问题:“不想创建依赖于数据库供应商的sql语句”。 (如果“all”(数据库Hibernate支持)正在实现DDL (用于定义和检查数据库结构的SQL子集),则此语句可能为false。)相等)。

将hyperjaxb生成的实体从eclipse持久化到mysql

我正在使用本教程设置hyperjaxb以在eclipse中运行。 到目前为止,我已经让它marshal unmarshal ,但它还没有触发hbm2ddl来创建数据库中的表,并且不清楚在eclipse目录结构中我应该找到Main.java和TestFunctions.java类的位置我创建的是从上面的教程链接运行代码。 如何更改我的eclipse配置以使这些事情发生? 这是我的main.java: package maintest; public class Main { public static void main(String[] args) { TestFunctions mf = new TestFunctions(); try {mf.setUp();} catch (Exception e) {e.printStackTrace();} mf.unmarshal(); mf.setUpPersistence(); Long id = mf.saveToDatabase(); System.out.println(“hjid is: “+id); mf.loadFromDatabase(id); mf.marshal(); } } 您可以通过单击此链接从TestFunctions.java读取更冗长的代码。 请注意,尽管代码在我的机器上是左对齐的,但文件共享站点错误地使代码居中对齐。 persistence.properties是: hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.username=someusername hibernate.connection.password=somepassword hibernate.connection.url=jdbc:mysql://localhost/sometestdatabase hibernate.hbm2ddl.auto=create-drop hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider hibernate.jdbc.batch_size=0 当我右键单击Main.java并单击run as.. […]

Hibernate – hibernate.hbm2ddl.auto = validate

我感兴趣的是hibernate.hbm2ddl.auto = validate实际上是如何工作的,我很难找到全面的文档。 我们最近发现生产系统受http://opensource.atlassian.com/projects/hibernate/browse/HHH-3532的影响(Hibernate在名称上匹配外键,而不是签名,所以会为你重新创建它们)和hibernate .hbm2ddl.auto =正在从我们的下一个版本中删除更新。 我很乐意完全摆脱hibernate.hbm2ddl.auto并自己管理我们的数据库。 但是,并非所有同事都分享这个世界观,有些人热衷于加入hibernate.hbm2ddl.auto = validate。 我担心这会遇到同样的问题,我有兴趣找到有关此validation实际如何工作的更多文档。 Hibernate社区文档( http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html )实际上只是引用了这些值。 有没有人有任何好的文档指针,或在生产系统中使用validation的任何实际经验?

使用hibernate更新数据库模式

update 我可以创建我的数据库模式,它会自动添加属性,约束,键等……但是更新数据库模式呢? 如果我从我的实体中删除一些属性,hibernate不会删除它,或者如果我改变一些约束,hibernate不会触及已创建的约束… 那么,有一种方法可以让hibernate真正更新数据库模式吗? 谢谢。

Configuration.generateSchemaCreationScript()在Hibernate 5中的位置

在Hibernate 4.x中,我习惯于生成和导出注释实体中定义的模式,如下所示(使用Spring在类路径上查找带注释的实体): Connection connection = DriverManager.getConnection(“jdbc:h2:mem:jooq-meta-extensions”, “sa”, “”); Configuration configuration = new Configuration() .setProperty(“hibernate.dialect”, “org.hibernate.dialect.H2Dialect”); // […] adding annotated classes to Configuration here… configuration.generateSchemaCreationScript( Dialect.getDialect(configuration.getProperties())); SchemaExport export = new SchemaExport(configuration, connection); export.create(true, true); 这在Hibernate 5.0中不再有效: Configuration.generateSchemaCreationScript()不再存在 现在不推荐使用SchemaExport(configuration, connection)构造函数 除了以下内容之外,我没有在迁移指南中找到任何明显的引用变化: 已从配置中删除了相当多的方法 基于一组带注释的实体,使用Hibernate 5.0在现有JDBC连接上生成和导出数据库的正确方法是什么? (基于JPA的纯解决方案也很好) (注意,只是删除对generateSchemaCreationScript()的调用似乎可以工作,但我更希望确保这一点正确)

如何在hibernate中首次创建数据库模式,并在模式修改时进一步更新?

我想第一次在hibernate中创建数据库模式。 而且,如果模式中有任何修改,例如添加新表或删除某些列,我想更新现有模式,保持以前的数据不变。 根据此问题给出的选项,看起来我可以创建模式破坏以前的数据,或者我可以更新模式。 有什么价值可以兼得吗?