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:
Die properties der persistence.xml sieht wie folgt aus:
Beim direkten Verbinden über eine Connection, erhalte ich keinen Fehler
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!
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:
Code:
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:
Code:
<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
Code:
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!