2013-04-29 49 views
0

我只是想嘗試一點冬眠的例子,但我一直在運行時收到此錯誤:Hibernate的MySQL連接不工作

Exception in thread "main" java.lang.UnsupportedOperationException: The user must supply a JDBC connection 

我不能看到我犯了一個錯誤。這是我的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/persistence_1_0.xsd" version="1.0"> 
    <persistence-unit name="Example" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <class>com.hibernatetest.Employee</class> 

     <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> 
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> 
      <property name="javax.persistence.url" value="jdbc:mysql://localhost:3306/TestDB" /> 
      <property name="javax.persistence.user" value="root" /> 
      <property name="javax.persistence.password" value="" /> 
      <property name="hibernate.hbm2ddl.auto" value="update" /> 
      <property name="hbm2ddl.auto" value="update"></property>   
     </properties> 
    </persistence-unit> 
</persistence> 

我在這裏看不到任何錯誤。當我使用Maven時,我將這些依賴關係添加到pom中

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>3.6.0.Final</version> 
</dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.6.0.Final</version> 
     </dependency> 

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

在我看來,這應該可以完成這項工作。

最後但並非最不重要的,我的Java代碼:

public void storeEmp(Employee empl) { 
     try { 
      em.getTransaction().begin(); 
      em.persist(empl); 
      em.getTransaction().commit(); 
     } catch (PersistenceException e) { 
      e.printStackTrace(); 
     } 
    } 

員工是繼豆模式,爲@Entity註解的一個簡單的POJO。

我真的找不到我的錯誤?

+0

你是如何初始化EM(我猜這是你的實體管理器)?看看http://stackoverflow.com/questions/7470773/hibernate-how-configure-entitymanager-in-hibernate看看它是否是重複的。 – anoopelias 2013-04-29 11:26:34

回答

1
 <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> 
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> 
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/TestDB" /> 
      <property name="hibernate.connection.username" value="root" /> 
      <property name="hibernate.connection.password" value="" /> 
      <property name="hibernate.hbm2ddl.auto" value="update" /> 
      <property name="hbm2ddl.auto" value="update"></property>   
     </properties> 

嘗試這些特性

+0

好的,這是工作。謝謝。但我想保持它在幾個JPA實現中的可移植性 – Mirco 2013-04-29 11:30:08