【发布时间】: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 属性。