| Dear Sir/Madom,
 I have a table in which has one column as the pk.  For some very special case, the pk need to change.  However, when I create a session and call
 save(Object object, Serializable id), it throw an Exception as following.
 
 17:33:40,447 ERROR [STDERR] net.sf.hibernate.HibernateException: identifier of an instance of com.primecreation.cxn.system.bean.HomeNetwork altered from 4 to 5
 at net.sf.hibernate.impl.SessionImpl.flushEntities(SessionImpl.java:2141
 )
 at net.sf.hibernate.impl.SessionImpl.flushEverything(SessionImpl.java:20
 17)
 at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2004)
 at net.sf.hibernate.transaction.JTATransaction.commit(JTATransaction.jav
 a:52)
 at com.primecreation.cxn.system.database.network.NetworkDAO.updateHomeAn
 dSecondaryNetorkProfile(Unknown Source)
 at com.primecreation.system.web.TestDBServlet.doPost(Unknown Source)
 at com.primecreation.system.web.TestDBServlet.doGet(Unknown Source)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
 icationFilterChain.java:247)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
 ilterChain.java:193)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
 alve.java:256)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
 a:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
 alve.java:191)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:643)
 at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecur
 ityMgrRealm.java:220)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
 .java:246)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:641)
 at org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invoke(Contai
 nerStatsValve.java:76)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
 a:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 
 at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
 2416)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
 ava:180)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
 rValve.java:171)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
 ava:172)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:641)
 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
 yAssociationValve.java:65)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
 577)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
 a:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
 ve.java:174)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
 t.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
 a:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 
 at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:22
 3)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
 :601)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
 ssConnection(Http11Protocol.java:392)
 at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
 :565)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
 ool.java:619)
 at java.lang.Thread.run(Thread.java:534)
 
 
 It work fine if I only update other columns but will throw Exception when I try to update the pk field also.
 
 Please help to tell me what happen why I cannot update pk?
 
 
 |