Hsqldb

Olá

Você deu commit apos o insert?

colega coloque o código ae… pra ficar mais fácil achar o problema…

Olá,
Estou tentando usar o HSQLDB, mas eu faço o insert, fecho a minha aplicação e quando executo-a de novo fazendo um select, não existe nenhm dado. Na string de conexão eu usei o :file: mas mesmo assim não persiste.

Alguem ja passou por este problema?

Obrigado,
Oscar

[quote=furutani]Olá

Você deu commit apos o insert?[/quote]

Oi, eu dei sim.
Tenho uma main de teste que chama o método que popula uma tabela e um que faz um select. Se eu executo ambos na mesma execucao, eu consigo recuperar o dado, mas se eu executo o de popular, fecho a app e executo o de select, nao consigo o retorno.
No meu método eu estou fazendo
EntityTransaction tx …

tx.comit();
É isto né? eu estou um pouco perdido com o JPA…

[code] public void popula(){
System.out.println("Populando tabela usuario… ");
EntityTransaction tx = manager.getTransaction();
tx.begin();
try {

		Usuario us1 = new Usuario();
		us1.setNome("Aninha");
		us1.setID(1);
		us1.setSenha("aaa");
		manager.persist(us1);
		    		
		tx.commit();
		System.out.println("Ok");
	}catch(RuntimeException e) { // <-- importante, agora é runtime
	  e.printStackTrace();
		tx.rollback();
	}    	
}

public void get()
{
	EntityTransaction tx = manager.getTransaction();
	tx.begin();
	List<Usuario> usuarios = null;
	try{
	Query query = manager.createNamedQuery("Usuario.listarTodos");
	usuarios = query.getResultList();
	tx.commit();
	System.out.println(usuarios);
	}
	catch(RuntimeException e)
	{
		e.printStackTrace();
	}
}[/code]

Isto é o código que faz acesso ao banco. A classe Usuário é apenas uma classe para encapsular os registro do banco de dados.
Esta é a main:

[code]import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class TestaUsuario {
private static EntityManagerFactory factory;
private static EntityManager manager;

public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(“empregados”);
manager = factory.createEntityManager();

  UsuarioDAO.getInstance().setManager(manager);
  UsuarioDAO.getInstance().popula();
  UsuarioDAO.getInstance().get();
System.out.println("OK!");

}
}
[/code]

Resolvido: Eu coloquei a propriedade shutdown=true e dei close na saíoda da main…
Então tudo funcionou :slight_smile: