Caros,
Estou brincando um pouco com JPA e ando testando com o Oracle 10g XE e o HSQLDB.
Com Oracle, tudo normal, mas com o HSQLDB, eu percebi que há um grande problema. Mesmo que eu faça:
entityManager.close();
entityManagerFactory.close();
ele NÃO chama o “SHUTDOWN” necessário para fechar corretamente o HSQLDB.
Fiz uma gambiarra assim para solucionar:
public void shutdown() {
entityManager.getTransaction().begin();
entityManager.createNativeQuery("SHUTDOWN").executeUpdate();
entityManager.getTransaction().commit();
entityManager.close();
emf.close();
}
Vou tentar olhar os fontes do Hibernate para o dialeto do HSQLDB para ver se ele ignora isso mesmo no close, ou mesmo no driver do HSQLDB. Algum lugar deveria fazer isso.