# JPA Hibernate: "The user must supply a jdbc connection"



## SegFault (28. Nov 2009)

Aktuell versuche ich mich an einen JPA Tutorial. Sofern ich das verstanden habe benötigt das JPA über hibernate eine persistence.xml.
im META-INF Ordner. Die hab ich erstellt und das schein auch zu funktionieren.
Diese sieht folgendermaßen aus


```
<persistence>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <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/test" />
	<property name="hibernate.connection.username" value="foo" />
	<property name="hibernate.connection.password" value="bar" />
   </properties>
   <persistence-unit name="hibernatetest">
   </persistence-unit>
</persistence>
```

Da ich immer noch die jboss tools verwende möchte ich nun eine hibernate console erstellen. Daher öffne ich das hibernate view und erstelle eine neue Configuration. 

Projektname hab ich eingegeben
Bei Database Connection hab ich ausgewählt: Hibernate Configure Connection (Ich hab auch schon JPA configured Connection probiert)
und natürlich JPA gewählt. Den rest hab ich gelassen. Die Konsole wird auch prima erstellt. 
Öffne ich aber nun den Database eintrag in der Console wird das mit folgenden Fehler quittiert:

Error while opening Database

Reason: Java.lang.unsupportedOperationException: the User must supply a JDBC connection.

Hab auch schon vieles herum probiert aber nichts funktioniert so wirklich wie es soll. 
Ich hatte anfangs sogar schon mit einer properties file gearbeitet:


```
hibernate.connection.username=foo
hibernate.connection.password=bar
hibernate.connection.driver_class=com.mysql.jdbc.Driver   
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect   
hibernate.connection.url=jdbc:mysql://localhost:3306/test   
hibernate.connection.provider_class=org.hibernate.connection.DriverManagerConnectionProvider
```
dafür die entsprechenden Infos aus der persistence.xml raus, das wird aber damit quittiert das er com.mysql.jdbc.Driver als Klasse nicht finden kann. 

Irgendwie komme ich aktuell also gar nicht vorran.


----------



## maki (28. Nov 2009)

> das wird aber damit quittiert das er com.mysql.jdbc.Driver als Klasse nicht finden kann.


Ist denn der MySQL JDBC Treiber im Classpath?

Nebenbei bemerkt, nimm den [c]MySQLInnoDBDialect[/c] anstatt des [c]MySQLDialect[/c].


----------



## SegFault (28. Nov 2009)

Jupp der ist auf garantie im Classpath. In der Version in welcher ich die console per persistence.xml erstelle (Also die DB-Verbindung in dieser Datei angebe) klappt das Erstellen der Konsole problemlos, aber beim öffnen der DB kommt die besagte Meldung.

In der Version in welcher ich mit der properties file arbeite, kann ich nichtmal die hibernate konsole erstellen.

*Problem konnte gelöst werden: Die persistence.xml war falsch formatiert. *


----------



## Gs1123 (19. Jan 2011)

Danke ,dass du uns sagst was genau falsch formatiert war.......


----------



## JimPanse (24. Jan 2012)

Ich hatte das gleiche Problem aber ich hatte vergessen die jta-data-source anzugeben falls jmd ein ähnliches Problem haben sollte ungefähr so sieht meine JPA 2.0 Conf aus (für JBoss 7)

[XML]
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
	xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
Java Persistence API: XML Schemas
        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

                <persistence-unit name="myunit" transaction-type="JTA">

		<jta-data-source>java:jboss/datasources/MyDS</jta-data-source>

		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<properties>


			<property name="hibernate.hbm2ddl.auto" value="update" />
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />

                  <!-- Weitere Properties fuer Hibernate -->
		</properties>
	</persistence-unit>
</persistence>
[/XML]

Greetz


----------

