Erro em Update/Delete no Hibernate c/ Struts! [MySQL]

5 respostas
dead_thinker

Opa galera, seguinte, consigo listar e inserir beleza, mas quando vou atualiza, ele faz é inserir, e no delete dá erro. O que estou errando? O banco é MySQL!

Codigo do update e do delete.

public void update(Object bean) throws Exception  {		
		Transaction tx = session.beginTransaction();
		session.evict(bean);
		session.merge(bean);		
		tx.commit();		
		session.evict(bean);
	}


	public void delete(long id, Class classe) throws Exception  {
		Transaction tx = session.beginTransaction();
		Object obj = session.get(classe, new Long(id));		
		session.delete(obj);
		tx.commit();
		session.evict(obj);
	}


// Chamo assim

public ActionForward update(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {

		UsuarioForm userForm = (UsuarioForm)form;
		Usuario userBean = new Usuario();
		BeanUtils.copyProperties(userBean, userForm);
		userBean.verificaFlags();
		
		UsuarioBusiness userBusiness = UsuarioBusiness.getInstance();
		userBusiness.update(userBean);
		
		search(mapping, form, request, response);
		return mapping.findForward("main");
	}


// e 
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {

		UsuarioForm userForm = (UsuarioForm)form;
		Usuario userBean = new Usuario();
		try {
			UsuarioBusiness userBusiness = UsuarioBusiness.getInstance();
			userBean = userBusiness.getUserByLogin(userForm.getLogin());
			userBusiness.delete(userBean.getIdUsuario());
		} catch (Exception e) {
			System.out.println("erro: " + e.getMessage());
		}
		search(mapping, form, request, response);
		return mapping.findForward("main");
	}

Dicas? obrigado!

5 Respostas

dead_thinker

Bem, quanto ao update o problema era pq não tinha colocado o id do usuario no form :blush:

Mas o erro do delete continua :frowning:

kaique

Cara…coloca o teu stackTrace aki no forum pra gente poder ver o erro q tah dando…

Vlw!!

dead_thinker
java.lang.ClassCastException: java.lang.Long
	at org.hibernate.type.IntegerType.set(IntegerType.java:41)
	at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:83)
	at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:65)
	at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1514)
	at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1576)
	at org.hibernate.loader.Loader.doQuery(Loader.java:661)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:47)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:41)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2730)
	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:365)
	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:346)
	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:123)
	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:177)
	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:799)
	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:792)
	at br.com.noix.newsletter.dao.GenericDAO.delete(GenericDAO.java:43)
	at br.com.noix.newsletter.business.UsuarioBusiness.delete(UsuarioBusiness.java:101)
	at br.com.noix.newsletter.struts.action.UsuarioAction.delete(UsuarioAction.java:172)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
	at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:595)
dead_thinker

Alguem me da uma luz? So falta o delete funcionar!

A

Você deve estar fazendo um cast errado, promovendo um Long para Integer ou algo parecido.

Criado 21 de junho de 2006
Ultima resposta 22 de jun. de 2006
Respostas 5
Participantes 3