[Hibernate] Não salva no BD

1 resposta
B

Pessoal,

Estou com um problema meio chato de resolver… Tenho o seguinte código para salvar meu objeto:

@Override
	public int salvar(Resposta resposta) {
		this.session.saveOrUpdate(resposta);		
//		this.session.getTransaction().commit(); // Necessário chamar commit, pois chamando-se simplesmente flush não estava gravando no banco de dados.
		this.session.flush();
		return resposta.getId();
	}

Simplesmente chamando-se flush não grava o registro no banco. Com o log do hibernate habilitado é imprimesso o insert corretamente. Aí quando subtituo o flush pelo commit grava no banco, mas ao tentar gravar um segundo registro dá o seguinte erro:

GRAVE: Servlet.service() for servlet [cadastroResposta] in context with path [/aie] threw exception
org.hibernate.SessionException: Session is closed!
	at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:72)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1199)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:344)
	at $Proxy34.flush(Unknown Source)
	at br.gov.ibama.aie.resposta.RespostaDAOHibernate.salvar(RespostaDAOHibernate.java:21)
	at br.gov.ibama.aie.resposta.RespostaRN.salvar(RespostaRN.java:14)
	at br.gov.ibama.aie.servlet.CadastroRespostaServlet.service(CadastroRespostaServlet.java:110)

Alguém já passou por isto?

1 Resposta

Rodrigo_Sasaki

o commit() vai fechar a sua sessão…

se quiser gravar outro objeto, teria que abrir uma outra…

Criado 16 de abril de 2012
Ultima resposta 16 de abr. de 2012
Respostas 1
Participantes 2