[RESOLVIDO] Error 500 - Caused by: java.lang.IllegalStateException: EntityManager is closed

1 resposta
leleou92

Já pesquisei pra caramba e não acho a solução para esse problema.

public boolean cadastrar(Usuario usuario) {
		    	System.out.println("Entrou!");
	              Query query = manager.createNativeQuery("exec UsuarioI ?,?,?,?");
	              System.out.println("Teste");
	        	  query.setParameter(1, usuario.getNome());
	        	  query.setParameter(2, usuario.getSenha());
	        	  query.setParameter(3, usuario.getEmail());
	        	  query.setParameter(4,1);
	        	
	        	  Object id = query.getSingleResult();
	        	  
	        	  return true;
	       
	    }

Ele entra na função do business, mas não passa para a outra linha do Syso ("TESTE");

Ele da erro na linha Query query = manager.createNativeQuery("exec UsuarioI ?,?,?,?");

Controlo minha entityManager atravez de uma classe "GenericBusiness":

import java.lang.reflect.ParameterizedType;
import java.util.Collection;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.caelum.vraptor.ioc.Component;
import br.com.model.AbstractEntity;

@Component
public abstract class GenericBusiness<T extends AbstractEntity> implements GenericRepository<T> {

	protected final EntityManager manager;
	private final Class<T> clazz;

	protected GenericBusiness(EntityManager manager) {
		this.manager = manager;

		@SuppressWarnings("unchecked")
		Class<T> clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];

		this.clazz = clazz;
	}

	public Collection<T> all() {
		Query query = manager.createQuery("from " + clazz.getName());

		@SuppressWarnings("unchecked")
		Collection<T> list = query.getResultList();

		return list;
	}

	public T getById(int id) {
		return manager.find(clazz, id);
	}

	public void remove(T entity) {
		//manager.remove(manager.getReference(clazz, entity.getId()));
	}

	public T save(T entity){
		return manager.merge(entity);
	}
	
	public T merge(T entity){
		return manager.merge(entity);
	}
}

Alguem ai pode me dar uma luz de onde possa estar esse problema ?
Tenho pouca experiencia com programação e estou usando vRaptor a pouco tempo.. por favor, alguem me da uma dica ai! hehehe xD

Solução: Mudei o retorno da minha função de boolean para void :)

1 Resposta

drsmachado

Tá, e de onde vem o EntityManager?

Criado 26 de junho de 2013
Ultima resposta 27 de jun. de 2013
Respostas 1
Participantes 2