# Jpa hsqldb



## Kris (27. Feb 2009)

Hallo

Ich möchte eine JAVA SE Anwendung mit JPA und einer HSQLDB kombinieren.
Ich habe eine persistence.xml Datei im META-INF Verzeichnus.


```
<?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="test">
    <description>Eine Testunit um zu sehen ob es funktioniert</description>
    <properties>
      <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />
      <property name="hibernate.connection.url" value="jdbc:hsqldb:file:C:/Test" />
      <property name="hibernate.connection.username" value="sa" />
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
      <property name="hibernate.show_sql" value="true" />
      <property name="hibernate.hbm2ddl.auto" value="create-drop" />
    </properties>
  </persistence-unit>
</persistence>
```

eine Klasse PersistenzVerwaltung


```
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

import de.drk.krefeld.models.Fachdienst;

public class PersistenzVerwaltung {

  EntityManagerFactory emf;

  public PersistenzVerwaltung() {
    emf = Persistence.createEntityManagerFactory("test");
    System.out.println(Persistence.PERSISTENCE_PROVIDER);
  }

  public Fachdienst createFachdienst(String bezeichnung) throws Exception {
    try {
      Fachdienst neuerfachdienst = null;
      neuerfachdienst = new Fachdienst(bezeichnung);
      EntityManager em = emf.createEntityManager();
      EntityTransaction tx = em.getTransaction();
      em.persist(neuerfachdienst);
      tx.commit();
      em.close();
      return neuerfachdienst;
    } catch (Exception e) {
      e.printStackTrace();
      throw new Exception();
    }
  }
}
```

Wenn ich nun ein Objekt der Klasse PersistenzVerwalung erzeuge und die die Methode createFachdienst ausführe kommt folgender Fehler.


```
Local Exception Stack: 
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
Error Code: 0
	at oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java:305)
	at oracle.toplink.essentials.sessions.DefaultConnector.connect(DefaultConnector.java:102)
	at oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:184)
	at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:582)
	at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:280)
	at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:229)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)
	at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91)
	at de.drk.krefeld.bean.PersistenzVerwaltung.createFachdienst(PersistenzVerwaltung.java:23)
	at de.drk.krefeld.control.Main.actionPerformed(Main.java:232)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
```

Die hsql.jar ist im BuidPath intigriert. Irgendeine Idee?
P.S.: Die Fehlermeldung ist noch viel grösser aber ich habe mal nur die ersten Zeilen genommen, damit der Beitrag keine sechs Seiten einnimmt.


----------



## Gelöschtes Mitglied 5909 (28. Feb 2009)

Du konfigurierst hibernate, verwendest aber oracle toplink sodass die konfiguration nicht gefunden wird.


> Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben



entscheide dich zwischen hibernate und toplink, beides sind jpa implementierungen


----------

