【问题标题】:Hibernate database creationHibernate 数据库创建
【发布时间】:2013-04-01 18:22:50
【问题描述】:

我正在尝试在应用服务器启动时创建数据库架构。
我使用带注释的 hebernate 4.1.9 和 hibernate.cfg.xml 进行配置。

所以问题是我不能完全理解我应该做什么来创建模式,然后在应用程序中使用它。当然,我只想在第一次启动时执行架构创建,下次启动时我想更新它。

我正在尝试在更新状态下使用 hbn2ddl.auto,但没有创建数据库。也许我应该在 hibernate.connection.url 的末尾使用INIT=create schema IF NOT EXISTS myschema 之类的东西??

我也有例外

org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set

但是在hibernate.cfg.xml中有这样的字符串:

<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

谁能给我描述一下?

【问题讨论】:

  • 尝试查看this question 及其答案中的链接。
  • 我之前在答案中看到了链接,但这并没有帮助,因为我不想纠正额外的创建脚本并且将 INIT 块添加到 url 不会创建架构。其实我想知道为什么?
  • Hibernate 文档仅将 hibernate.connection.url 定义为 JDCB URL。 MySQL Connector/J reference 没有定义 INIT 属性。我相信链接文章的重点是您必须咬紧牙关,至少自己创建一个空架构。
  • 我解决了这个问题。 Connector/J 文档没有定义 INIT 属性,是的,这是事实。但它定义了 createDatabase 属性。

标签: java hibernate


【解决方案1】:

我自己解决问题。我应该将 createDatabase=true 添加到 hibernate.connection.url

【讨论】:

  • 漂亮。 createDatabaseIfNotExist=true 是另一种选择。
  • 当我谈到 INIT 属性时,我的意思是我试图找到类似的东西。所以我在你的链接上找到了它。谢谢。
猜你喜欢
  • 2013-03-02
  • 2014-01-30
  • 2016-08-11
  • 2016-11-12
  • 2014-06-23
  • 2016-08-15
  • 2013-05-14
  • 1970-01-01
相关资源
最近更新 更多