(RESOLVIDO)Exceção: get is not valid without active transaction (Hibernate)

Ola pessoal! Estou com uma duvida com a seguinte exceção que aparece no meu console,mas tem um porém este erro só aparece quando a transação esta ligada ao web service do projeto pois existe uma classe que implementa este web service que utiliza o metodo carregar.

Classe Hibernate:

public class TransacaoEtiquetaDAOHibernate implements Transacao_EtiquetaDAO {

private Session session;


@Override
public Transacao_Etiqueta carregar(Integer id_transacao_etiqueta) {
					
	return (Transacao_Etiqueta) session.get(Transacao_Etiqueta.class,id_transacao_etiqueta);
		
}


@Override
public Transacao_Etiqueta cadastrarTransacaoEtiqueta(Transacao_Etiqueta transacao_etiqueta) {
	// TODO Auto-generated method stub

	this.session.beginTransaction();
	this.session.save(transacao_etiqueta);
	this.session.getTransaction().commit();

	return null;

}

public Session getSession() {
	return session;
}

public void setSession(Session session) {
	this.session = session;
}

}

Classe RN:

public class Transacao_EtiquetaRN {

private Transacao_EtiquetaDAO transacaoEtiquetaDAO;

public Transacao_EtiquetaRN() {
	
	this.transacaoEtiquetaDAO = DAOFactory.criarTransacaoEtiquetaDAO();
}

public Transacao_Etiqueta cadastrarTransacaoEtiqueta(Transacao_Etiqueta transacao_etiqueta) {
	
	EtiquetaRN etiquetaRN = new EtiquetaRN();
	Etiqueta etiqueta = new Etiqueta();
	
	TransacaoRN transacaoRN = new TransacaoRN();
	Transacao transacao = new Transacao();
			
	etiqueta = etiquetaRN.carregar(transacao_etiqueta.getId_etiqueta());		
	transacao = transacaoRN.carregar(transacao_etiqueta.getId_transacao());
					
	if(etiqueta != null){
					
		if(etiqueta.getCod_empresa() == transacao_etiqueta.getCod_empresa()
		   && etiqueta.getCod_filial() == transacao_etiqueta.getCod_filial()
		   && etiqueta.getCod_unidade() == transacao_etiqueta.getCod_unidade()){
						
			if(transacao != null){
							
				return transacaoEtiquetaDAO.cadastrarTransacaoEtiqueta(transacao_etiqueta);
				
			}else{
				
				System.out.println("Esta transação não existe");
			}
			
		}else{
							
			System.out.println("Esta etiqueta não existe");
			
		}			
		
	}else{
		
		System.out.println("Esta etiqueta não existe");
		
	}
	return null;	
}
}

Classe WebService:

@Path("/transetiq")
public class TransacaoEtiquetaRest {

private Transacao_EtiquetaRN transEtiqRN;

@PostConstruct
public void init() {

	 transEtiqRN = new Transacao_EtiquetaRN();

}

@POST
@Path("/cadastrar/{id_etiq}/{cod_em}/{cod_fi}/{cod_un}/{id_trans}/{cod}/{desc}")
@Consumes(javax.ws.rs.core.MediaType.TEXT_PLAIN)
@javax.ws.rs.Produces(javax.ws.rs.core.MediaType.TEXT_PLAIN)

public void salvarEtiquetas(

		@PathParam("id_etiq") String id_etiq,@PathParam("cod_em") int cod_em, @PathParam("cod_fi") int cod_fi,
		@PathParam("cod_un") int cod_un,@PathParam("id_trans") int id_trans,@PathParam("cod")int cod,@PathParam("desc") String desc) {

	try {

		Transacao_Etiqueta transEtiq = new Transacao_Etiqueta();
		
		Long Lid_etiq = Long.parseLong(id_etiq);
		BigInteger Bid_etiq = BigInteger.valueOf(Lid_etiq);			

		transEtiq.setId_etiqueta(Bid_etiq);			
		transEtiq.setCod_empresa(cod_em);
		transEtiq.setCod_filial(cod_fi);
	    transEtiq.setCod_unidade(cod_un);		    
	    transEtiq.setId_transacao(id_trans);
	    transEtiq.setCodigo(cod);
	    transEtiq.setDescricao(desc);

	   transEtiqRN.cadastrarTransacaoEtiqueta(transEtiq);
	
	} catch (Exception e) {

		System.out.println("Erro: " + "\n" + e);
	}
}

public TransacaoEtiquetaRest() {
	
}

}

Resolveu como?

Opa!

Consegui resolver e foi utilizando uma persistencia diferente da que estava implementada,este erro acontece apenas quando uso alguns métodos do hibernate mas n pesquisei mais para saber se existe um modo de fazer funcionar com o mesmo

1 curtida

Fechou, valeu 0/