2012-05-07 43 views
-1

我意识到有从3.x迁移到4.x的帖子。从Hibernate entitymanager 3.6.9迁移到4.1.2崩溃的mysql连接

但是,我无法解密和关联这些指南所说的话,以及我需要用我的maven依赖项或我的代码所做的事情。

具体操作

失败后

TypedQuery Q = em.createQuery(等等..);

列表结果= q.getResultList();

当司机试图获取连接,为何对

没有合适的驱动程序找到结束了......

我无法找到任何直接回答,以我是否需要到

  • 对persistence.xml进行更改
  • 更改我的代码
  • 重新调整我的JPA范式

是否有我需要让我的代码和我的Maven依赖任何变化?我是否应该习惯使用hibernate 4?

的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    version="1.0"> 
    <persistence-unit name="z666" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <class>z666.Node</class> 
    <properties> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" /> 
     <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> 
     <property name="hibernate.show_sql" value="true" /> 
     <property name="hibernate.connection.username" value="zzz" /> 
     <property name="hibernate.connection.password" value="666" /> 
     <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/z666" /> 
     <property name="hibernate.max_fetch_depth" value="3" /> 
    </properties> 
    </persistence-unit> 
</persistence> 
+0

我得到了同样的错误 4.1。 2.Final。经过一个可怕的夜晚,今天早上我发现4.1.5.Final没问题。 – user816082

回答

0

好像你缺少MySQL驱动mysql-connector-java-<version>.jarCurrent versionmysql-connector-java-5.1.20.jar。你需要像Maven的依赖:

<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>5.1.20</version> 
</dependency> 

我不知道是什么版本的Hibernate的4接受的,但我认为你需要至少5.1

+0

不缺,但包含在maven pom中是5.1.16。只是提醒一下,使用hibernate 3.6.9与我目前的maven pom作品。所以没有罐子失踪。 –

+0

@Blessed,“找不到合适的驱动程序”表示无法加载JDBC驱动程序。要么它找不到jar或JDBC URL有问题。你的网址看起来不错,所以我怀疑它找不到罐子。无论如何,这是您构建/ dev/test/deploy环境时遇到的一个问题,但由于您没有提供有关这方面的详细信息,所以我不能提供太多帮助。 –

+0

再次提醒 - 没有问题的网址,因为它与休眠3.6.9工程。问题不在于Hibernate的问题。问题是关于如何做到迁移到Hibernate 4.这个问题必须通过一些人转移到Hibernate 4来回答。 –