Hibernate consulta string

Tenho no meu form um botão consultar, e quando digito um codigo e mando consultar me retorna os outros dados no form blz
Alterei no meu DAO para fazer a consulta buscando ao inves de codigo buscar pelo nome e deu esse erro

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class java.lang.Integer, got class java.lang.String
	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class java.lang.Integer, got class java.lang.String
	org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:86)
	org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
	org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
	org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
	hibernate.PersistenciaDAO.buscar(PersistenciaDAO.java:42)
	usuario.action.UsuarioAction.buscar(UsuarioAction.java:89)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
	org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
	org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:150)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
Apache Tomcat/6.0.16

O que deu de errado?

Provavelmente você passou o nome, que é String, para buscar num campo que é Integer, deve ser o seu campo id. É o que parece.

provavelmente o valor informado para busca foi passado como String.

Como ficou essa alteração. Simplesmente mudou o parâmetro no método e esqueceu de alterar a query?

eu fiz as seguintes modificações

No meu Dao eu mudei ao inves de Integer pk, coloquei String pk

public Object buscar(Class clazz,String pk) throws Exception  {             
         try {            
          Serializable obj = (Serializable) session.get(clazz, pk );  
          session.flush();  
          transaction.commit();  
          return  obj;  
     } finally {  
          session.close();  
     }
   }

E na minha action ao inves de usuarioForm.getId(), coloquei usuarioForm.getNome()

usuario = (Usuario) persistencia.buscar(Usuario.class,usuarioForm.getNome());        

Ainda não consegui achar o erro

Então é isso. O session.get(clazz, pk ); vai procurar no banco no campo que você disse ao Hibernate que é o campo PK, e ele não é do tipo String. Para fazer uma busca pelo nome você vai ter que criar um query: HQL ou Criteria. Desse jeito não vai dar.

Blz então, valeu pela ajuda vou dar uma procurada sobre o assunto

Valeu mesmo