数据库表由
成功创建<property name="hibernate.hbm2ddl.auto" value="create"/>"
在persistence.xml中,但是每次运行我的应用程序时(在Eclipse Helios中),import.sql似乎都没有加载。我的persistence.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/ ... ce_2_0.xsd" version="2.0">
<persistence-unit name="myPersistenceUnit">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost/svrmonitor4" />
<property name="hibernate.connection.username" value="username" />
<property name="hibernate.connection.password" value="password" />
</properties>
</persistence-unit>
</persistence>
使用import.sql的内容我已经尝试删除换行符,+没有半冒号“;”,在命令行上测试了SQL(插入语句工作),尝试故意破坏SQL(在控制台上没有产生错误) )。我试过在我的类路径的根目录下放置import.sql,也在META-INF中放置(仍然没有运气)。我试过放“USE svrmonitor4;”在import.sql文件的开头(再次,没有运气)。
我是否遗漏了persistence.xml中的内容?
如果在插入MySQL数据库时遇到错误,报告的错误在哪里? Eclipse控制台或MySQL日志?我还没有看过MySQL日志。
在Eclipse中,我有三个项目,依赖项如下:
项目A(包含启动应用程序的主类) - &gt;项目B - &gt;项目C(包含实体类,persistence.xml)
我尝试将import.sql放在每个项目的类路径中,但没有区别。
答案 0 :(得分:4)
我通过增加Log4J日志记录级别找到了问题,因此我可以在控制台上看到Hibernate的hbm2ddl工具的INFO消息。使用persistence.xml文件,我的项目的类路径的根目录中的import.sql文件很好,即使它被eclipse中的另一个调用项目引用。我添加到log4j.xml的相关行:
<logger name="org.hibernate.tool.hbm2ddl" additivity="false">
<level value="info"/><appender-ref ref="console" />
</logger>
<logger name="org.hibernate" additivity="false">
<level value="warn"/><appender-ref ref="console" />
</logger>
这意味着我没有从Hibernate获取所有调试信息,只与导入.import.sql相关。
使用Log4j对此非常有用,因为它向我显示了import.sql脚本的SQL的任何错误
事实证明,我的SQL“INSERT INTO ...”语句没有正确顺序的值(这是因为当您从Entity类生成表时,表的顺序是按字母顺序排列的,其中是类在我的自定义顺序中定义了变量。)
答案 1 :(得分:4)
增加Log4J日志记录级别对我没有帮助,但是:
当使用generateDdl =“true”配置HibernateJpaVendorAdapter
时,hibernate.hbm2ddl.auto的值设置为“update”,覆盖persistence.xml中指定的实际值。
我的import.sql文件没有加载,这让我头疼了几个小时!
请参阅:Springs Source