Olá
Você deu commit apos o insert?
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