title: Hibernate 4.1.2 HHH000342: Could not obtain connection to query metadata : No suitable driver found for jdbc:hsqldb:mem:test
body: <p>What I am doing wrong?</p>
  
  <p>My persistence.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;persistence version="2.0" 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_2_0.xsd"&gt;
      &lt;persistence-unit name="Test" transaction-type="RESOURCE_LOCAL"&gt;
             &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt;
             &lt;class&gt;User&lt;/class&gt;
              &lt;properties&gt;
                &lt;property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/&gt;
                &lt;property name="hibernate.connection.url" value="jdbc:hsqldb:mem:test"/&gt;
                &lt;property name="hibernate.connection.password" value="sa"/&gt;
                &lt;property name="hibernate.connection.username" value=""/&gt;
                &lt;property name="hibernate.hbm2ddl.auto" value="create"/&gt;
                &lt;property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/&gt;
                &lt;property name="hibernate.show_sql" value="true"/&gt;
                &lt;property name="hibernate.format_sql" value="true"/&gt;
              &lt;/properties&gt;
            &lt;/persistence-unit&gt;
  </code></pre>
  
  <p>My code </p>
  
  <pre><code>...
  Persistence.createEntityManagerFactory("Test")
  ...
  </code></pre>
  
  <p>I get this error</p>
  
  <pre><code>javax.persistence.PersistenceException: [PersistenceUnit: Test] Unable to build EntityManagerFactory
      at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
      at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
      at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
      at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
      at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
      at com.aol.biz.vendor.persistence.TestVpsUser.setUp(TestVpsUser.java:32)
      at junit.framework.TestCase.runBare(TestCase.java:125)
      at junit.framework.TestResult$1.protect(TestResult.java:106)
      at junit.framework.TestResult.runProtected(TestResult.java:124)
      at junit.framework.TestResult.run(TestResult.java:109)
      at junit.framework.TestCase.run(TestCase.java:118)
      at junit.framework.TestSuite.runTest(TestSuite.java:208)
      at junit.framework.TestSuite.run(TestSuite.java:203)
      at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  Caused by: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set
      at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:97)
      at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:67)
      at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:170)
      at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
      at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
      at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
      at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
      at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2274)
      at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2270)
      at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1739)
      at org.hibernate.ejb.EntityManagerFactoryImpl.&lt;init&gt;(EntityManagerFactoryImpl.java:93)
      at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
      ... 18 more
  </code></pre>
  
  <p>BUT!!</p>
  
  <p>If I loaded jdbc driver class manually before  create factory - all works fine. O_o</p>
  
  <pre><code>try {
              Class.forName("org.hsqldb.jdbcDriver");
          } catch (ClassNotFoundException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
  </code></pre>
  
  <p>How I can do that all works without this step? Plz Help!</p>