# Probleme mit Schema (Hibernate)



## The_S (17. Feb 2009)

Hi-Ho,

wir stellen momentan unsere DB um (von HSQLDB, die wir zu Testzwecken hatten, zu DB2 als Produktivsystem). Mit der HSQLDB funktinoierte alles ohne Probleme, aber mit der DB2 bekomme ich von Hibernate folgenden Fehler:


```
ERROR [main] 17.02.2009 15:32:44,0922 org.hibernate.tool.hbm2ddl.SchemaValidator called by: org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:112) 
could not get database metadata

java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getConnection(DriverManager.java:545)
	at java.sql.DriverManager.getConnection(DriverManager.java:140)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
	at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:27)
	at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:107)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:317)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
	at de.so.dlp.persistence.dao.BaseDAO.<clinit>(BaseDAO.java:47)
	at de.so.dlp.handler.I18NHandler.<init>(I18NHandler.java:19)
	at de.so.dlp.handler.ExtrapolationHandler.<init>(ExtrapolationHandler.java:58)
	at de.so.dlp.facade.DispoFacade.<init>(DispoFacade.java:70)
	at de.so.dlp.facade.dispo.DispoFacadeTest.setUp(DispoFacadeTest.java:78)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.junit.internal.runners.MethodRoadie.runBefores(MethodRoadie.java:121)
	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:86)
	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
	at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
	at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
	at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:26)
	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:36)
	at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
ERROR [main] 17.02.2009 15:32:44,0938 org.hibernate.tool.hbm2ddl.SchemaValidator called by: org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:120) 
could not complete schema validation
```

Die properties der persistence.xml sieht wie folgt aus:


```
<properties>
        <property name="hibernate.connection.url" value="jdbc:db2://10.1.50.40:778899/MYDBNAME"/>
        <property name="hibernate.connection.driver_class" value="com.ibm.db2.jcc.DB2Driver"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"/>
        <property name="hibernate.hbm2ddl.auto" value="validate"/>
        <property name="hibernate.connection.username" value="user"/>
        <property name="hibernate.connection.password" value="pass"/>
        <property name="hibernate.show_sql" value="true"/>
    </properties>
```

Beim direkten Verbinden über eine Connection, erhalte ich keinen Fehler


```
import java.sql.Connection;
import java.sql.DriverManager;


public class TestConnection {

	public static void main(String[] args) throws Exception {
		
		/*
		 * Test Connection
		 */
		Class.forName("com.ibm.db2.jcc.DB2Driver");
		Connection con = DriverManager.getConnection("jdbc:db2://10.1.50.40:778899/MYDBNAME", "user", "pass");
		con.createStatement();
		/*
		 * End test Connection
		 */
	}
}
```

Einzige Änderung (außer die DB):

Das Schema hat sich geändert, weshalb ich ein Ant-File erstellt habe, dass alle Schema-Angaben meiner ganzen VOs abändert. Das hat soweit auch geklappt.

Jemand ne Idee, woran das liegt? Danke!


----------



## tfa (17. Feb 2009)

Hobbit_Im_Blutrausch hat gesagt.:


> Das Schema hat sich geändert, weshalb ich ein Ant-File erstellt habe, dass alle Schema-Angaben meiner ganzen VOs abändert. Das hat soweit auch geklappt.


Die Fehlermeldung finde ich komisch. Normalerweise passiert das, wenn man eine falsche URL verwendet.
Statt das Schema in den VO zu verdrahten, sollte man es lieber in den Properties definieren:


```
hibernate.default_schema=DAS_SCHEMA
```
Keine Ahnung, ob das hilft.


----------



## The_S (17. Feb 2009)

Hi tfa,

danke für deine Antwort. Es wurde irgendwann mal von unserem Architekten (warum auch immer) festgelegt, dass das Schema mit in die VOs und nicht in die Hibernate-Properties kommt. Von daher lässt sich da wenig machen .

Noch ne Idee?

Danke!


----------



## tfa (17. Feb 2009)

Ja, erstmal den Architekten feuern!   Im Ernst, DB-Konfig-Details fest zu verdrahten ist krank. Ich hab im Produktiv- und QS-System jeweils andere Schemata...

Du könntest aber die Schema-Property zusätzlich angeben. Vielleicht hilft das.

Ansonsten fällt mir noch ein: Läuft die DB2 unter Windows? Ansonsten gibt es da einen besonderen Hibernate-Dialekt (IBM-Großrechner). Damit hatte ich mal Probleme.


----------



## robertpic71 (17. Feb 2009)

tfa hat gesagt.:


> Ansonsten fällt mir noch ein: Läuft die DB2 unter Windows? Ansonsten gibt es da einen besonderen Hibernate-Dialekt (IBM-Großrechner). Damit hatte ich mal Probleme.




Heißer Tip. Hobbit, du hattest irgendwann einmal eine Frage zu DB2 - welche auf einer IBM i (alias iSeries alias System i alias i5 alias AS/400) lief. Falls die DB2 auf der AS/400 läuft, gibt es dafür eigene Treiber und einen eigen Hibernatedialekt.


```
# Hier: allgemeiner (Type 4) Treiber für alle Plattformen
driver=com.ibm.as400.access.AS400JDBCDriver
#
# URL zum Connecten (inkl. System)
# dahinter kann noch die Lib stehen
url=jdbc:as400://192.168.1.23/

Dialect: ...DB2400Dialect
```

/Robert

BTW: Brauche ich eine stärkere Sehhilfe, oder wo sind die Buttons für Code, Quote usw.?
(Stand 17.2., 22:50)


----------



## The_S (18. Feb 2009)

@tfa

Ich werds mal ausprobieren, danke!

@robertpic71

Das weißt du noch? Das weiß ja nicht mal ich mehr  . Also wir haben zwar ne AS400, die DB2 läuft aber getrennt (imho auf nen Linuxsystem). Aber danke für die Antwort, kann nie schaden sowas zu wissen  .


----------



## The_S (18. Feb 2009)

Das Schema ist jetzt in eine orm.xml ausgelagert wurden. Leider noch immer der Selbe Effekt. Hab auch mal zur Sicherheit den AS400-Dialekt getestet - ebenfalls ohne positives Ergebnis.


----------



## tfa (18. Feb 2009)

Mach mal einen Breakpoint in java.sql.DriverManager.getConnection und debug das.
Vielleicht sieht man da, was passiert bzw. welche URL verwendet wird.


----------



## The_S (18. Feb 2009)

Den kann ich nicht zufällig setzen, wenn ich nur die Binarys in Eclipse zur Verfügung habe!? Ich müsste also den Source mit einbinden!?

Ich könnte auch noch die komplette Fehlermeldung posten, evtl. hilft das ja etwas (was ich aber zu bezweifeln mag)


```
ERROR [main] 18.02.2009 10:15:35,0749 org.hibernate.tool.hbm2ddl.SchemaUpdate called by: org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:134) 
could not get database metadata

java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getConnection(DriverManager.java:545)
	at java.sql.DriverManager.getConnection(DriverManager.java:140)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
	at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:27)
	at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:127)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:314)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
	at de.so.dlp.persistence.dao.BaseDAO.<clinit>(BaseDAO.java:47)
	at de.so.dlp.handler.I18NHandler.<init>(I18NHandler.java:19)
	at de.so.dlp.handler.ExtrapolationHandler.<init>(ExtrapolationHandler.java:58)
	at de.so.dlp.facade.DispoFacade.<init>(DispoFacade.java:70)
	at de.so.dlp.facade.dispo.DispoFacadeTest.setUp(DispoFacadeTest.java:78)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.junit.internal.runners.MethodRoadie.runBefores(MethodRoadie.java:121)
	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:86)
	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
	at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
	at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
	at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:26)
	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:36)
	at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
ERROR [main] 18.02.2009 10:15:35,0765 org.hibernate.tool.hbm2ddl.SchemaUpdate called by: org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:165) 
could not complete schema update

java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getConnection(DriverManager.java:545)
	at java.sql.DriverManager.getConnection(DriverManager.java:140)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
	at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:27)
	at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:127)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:314)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
	at de.so.dlp.persistence.dao.BaseDAO.<clinit>(BaseDAO.java:47)
	at de.so.dlp.handler.I18NHandler.<init>(I18NHandler.java:19)
	at de.so.dlp.handler.ExtrapolationHandler.<init>(ExtrapolationHandler.java:58)
	at de.so.dlp.facade.DispoFacade.<init>(DispoFacade.java:70)
	at de.so.dlp.facade.dispo.DispoFacadeTest.setUp(DispoFacadeTest.java:78)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.junit.internal.runners.MethodRoadie.runBefores(MethodRoadie.java:121)
	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:86)
	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
	at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
	at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
	at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:26)
	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:36)
	at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
DEBUG [main] 18.02.2009 10:15:36,0701 de.so.dlp.persistence.dao.SegmentDAO called by: de.so.dlp.persistence.dao.BaseDAO.findById(BaseDAO.java:56) 
findById - Start, ID: 1

ERROR [main] 18.02.2009 10:15:36,0748 org.hibernate.util.JDBCExceptionReporter called by: org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:78) 
No suitable driver

ERROR [main] 18.02.2009 10:15:36,0748 de.so.dlp.persistence.dao.SegmentDAO called by: de.so.dlp.persistence.dao.BaseDAO.findById(BaseDAO.java:69) 
findById - Failed

javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Cannot open connection
	at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:202)
	at de.so.dlp.persistence.dao.BaseDAO.findById(BaseDAO.java:59)
	at de.so.dlp.handler.MasterDataHandler.findCollectionsBySegment(MasterDataHandler.java:311)
	at de.so.dlp.handler.MasterDataHandler.findCollectionsBySegmentWrapped(MasterDataHandler.java:329)
	at de.so.dlp.facade.DispoFacade.findAllCollectionsBySegment(DispoFacade.java:144)
	at de.so.dlp.facade.dispo.DispoFacadeTest.testFindCollectionsBySegment(DispoFacadeTest.java:86)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
	at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
	at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
	at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
	at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
	at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:26)
	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:36)
	at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.hibernate.exception.JDBCConnectionException: Cannot open connection
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
	at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
	at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
	at org.hibernate.loader.Loader.doQuery(Loader.java:673)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3049)
	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:399)
	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:182)
	... 27 more
Caused by: java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getConnection(DriverManager.java:545)
	at java.sql.DriverManager.getConnection(DriverManager.java:140)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
	... 45 more
```


----------



## byte (18. Feb 2009)

Kommt der Fehler auch, wenn Du hbm2ddl deaktivierst?

Kommentier doch mal testweise das hier aus:

```
<!-- <property name="hibernate.hbm2ddl.auto" value="validate"/> -->
```


----------



## The_S (18. Feb 2009)

@byto

jap, kommt auch. Halt nur der untere Teil


```
javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Cannot open connection
	at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:202)
	at de.so.dlp.persistence.dao.BaseDAO.findById(BaseDAO.java:59)
	at de.so.dlp.handler.MasterDataHandler.findCollectionsBySegment(MasterDataHandler.java:311)
	at de.so.dlp.handler.MasterDataHandler.findCollectionsBySegmentWrapped(MasterDataHandler.java:329)
	at de.so.dlp.facade.DispoFacade.findAllCollectionsBySegment(DispoFacade.java:144)
	at de.so.dlp.facade.dispo.DispoFacadeTest.testFindCollectionsBySegment(DispoFacadeTest.java:86)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
	at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
	at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
	at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
	at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
	at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:26)
	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:36)
	at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.hibernate.exception.JDBCConnectionException: Cannot open connection
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
	at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
	at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
	at org.hibernate.loader.Loader.doQuery(Loader.java:673)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3049)
	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:399)
	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:182)
	... 27 more
Caused by: java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getConnection(DriverManager.java:545)
	at java.sql.DriverManager.getConnection(DriverManager.java:140)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
	... 45 more
```

Hab auch mal zu Testzwecken


```
<property name="hibernate.show_sql" value="false"/>
```

auskommentiert - ohne ersichtliche Änderung.


----------



## tfa (18. Feb 2009)

Hobbit_Im_Blutrausch hat gesagt.:


> Den kann ich nicht zufällig setzen, wenn ich nur die Binarys in Eclipse zur Verfügung habe!? Ich müsste also den Source mit einbinden!?



Sinvoll wäre das, und in Eclipse ist das doch auch besonders einfach. Die richtigen Binarys mit Debug-Informationen hast du jedenfalls schonmal.


----------



## The_S (18. Feb 2009)

Das das schwer ist, habe ich nicht behauptet. Aber es ist halt auch mit Aufwand verbunden. Naja, ich werd mich mal ranmachen.


----------



## The_S (18. Feb 2009)

Hm, ich habe testhalber mal das JDK von 5 auf 6 umgestellt - und es geht.


----------



## tfa (18. Feb 2009)

Interessant. Darfst du JDK 6 denn benutzen?


----------



## The_S (18. Feb 2009)

OK, geht auch mit 1.5 . Jemand hat "nur" die Ziel-JRE kaputt-modifiziert. Ich verwende jetzt wieder die Standard-JRE und damit klappts.

Danke für eure Hilfen  .


----------

