estoy haciendo el metodo modificar, y con hibernate uso la opcion de update. Como base de datos tengo mysql. Me sale un error:
org.hibernate.TransientObjectException: The given object has a null identifier: proyecto.hibernate.Expediente
	at org.hibernate.event.def.DefaultSaveOrUpdateEventLi  stener.getUpdateId(DefaultSaveOrUpdateEventListene  r.java:227)
	at org.hibernate.event.def.DefaultUpdateEventListener  .getUpdateId(DefaultUpdateEventListener.java:46)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventLi  stener.entityIsDetached(DefaultSaveOrUpdateEventLi  stener.java:214)
	at org.hibernate.event.def.DefaultUpdateEventListener  .performSaveOrUpdate(DefaultUpdateEventListener.ja  va:33)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventLi  stener.onSaveOrUpdate(DefaultSaveOrUpdateEventList  ener.java:70)
	at org.hibernate.impl.SessionImpl.fireUpdate(SessionI  mpl.java:559)
	at org.hibernate.impl.SessionImpl.update(SessionImpl.  java:547)
	at org.hibernate.impl.SessionImpl.update(SessionImpl.  java:539)
	at proyecto.hibernate.ExpedienteDao.modifica(Expedien  teDao.java:142)
	at proyecto.hibernate.struts.action.ExpedienteAction.  modificaExp(ExpedienteAction.java:57)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ  e Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Native  MethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(De  legatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.struts.actions.DispatchAction.dispatchM  ethod(DispatchAction.java:269)
	at org.apache.struts.actions.DispatchAction.execute(D  ispatchAction.java:170)
	at org.apache.struts.chain.commands.servlet.ExecuteAc  tion.execute(ExecuteAction.java:58)
	at org.apache.struts.chain.commands.AbstractExecuteAc  tion.execute(AbstractExecuteAction.java:67)
	at org.apache.struts.chain.commands.ActionCommandBase  .execute(ActionCommandBase.java:51)
	at org.apache.commons.chain.impl.ChainBase.execute(Ch  ainBase.java:190)
	at org.apache.commons.chain.generic.LookupCommand.exe  cute(LookupCommand.java:304)
	at org.apache.commons.chain.impl.ChainBase.execute(Ch  ainBase.java:190)
	at org.apache.struts.chain.ComposableRequestProcessor  .process(ComposableRequestProcessor.java:283)
	at org.apache.struts.action.ActionServlet.process(Act  ionServlet.java:1913)
	at org.apache.struts.action.ActionServlet.doPost(Acti  onServlet.java:462)
	at javax.servlet.http.HttpServlet.service(HttpServlet  .java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet  .java:803)
	at org.apache.catalina.core.ApplicationFilterChain.in  ternalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.do  Filter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invo  ke(StandardWrapperValve.java:228)
	at org.apache.catalina.core.StandardContextValve.invo  ke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(  StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke  (ErrorReportValve.java:104)
	at org.apache.catalina.core.StandardEngineValve.invok  e(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.servic  e(CoyoteAdapter.java:216)
	at org.apache.coyote.http11.Http11AprProcessor.proces  s(Http11AprProcessor.java:866)
	at org.apache.coyote.http11.Http11AprProtocol$Http11C  onnectionHandler.process(Http11AprProtocol.java:71  6)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(  AprEndpoint.java:1498)
	at java.lang.Thread.run(Thread.java:619)
 
y dice que es porque un identificador es nulo. Pero resulta que el identificador de expediente es un numero que no se puede modificar(yo no quiero que eso suceda) y no lo cojo del formulario con el resto de informacion que si se puede modificar y por eso recoje un null en el numero de expediente. Mi pregunta es como hago que no aparezca este error
 
gracias 
  
 
