delete error
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [bean.StuBean#1]我在做修改操作
public boolean updateStu(StuBean stu)
{
Session s=HibernateSessionFactory.getSession();
Transaction tran=s.beginTransaction();
        String sql="from StuBean where id='"+stu.getId()+"'";
System.out.println(stu.getId()+stu.getName()+stu.getSex()+stu.getTel());
    Query q=s.createQuery(sql);
List<StuBean> l=q.list();
System.out.println(l);
if(!l.isEmpty())
{
      try {
s.update(stu);
  tran.commit();
} catch (HibernateException e) {
// TODO 自动生成 catch 块
System.out.println("update error");
e.printStackTrace();
}

}
     else
{
       s.close();
      return true;
}
        
s.close();
return false;
}上面的错误是什么意思啊

解决方案 »

  1.   

    session 缓存中已经存在你要更新的对象了先清除掉对象
    s.clear() ;
    s.update(stu);
      

  2.   

    log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
    log4j:WARN Please initialize the log4j system properly.
    1aaaaa女aaa
    [bean.StuBean@16fb2f8]
    update error
    org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [bean.StuBean#1]
    at org.hibernate.engine.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:556)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:258)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:216)
    at org.hibernate.event.def.DefaultUpdateEventListener.performSaveOrUpdate(DefaultUpdateEventListener.java:33)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    at org.hibernate.impl.SessionImpl.fireUpdate(SessionImpl.java:559)
    at org.hibernate.impl.SessionImpl.update(SessionImpl.java:547)
    at org.hibernate.impl.SessionImpl.update(SessionImpl.java:539)
    at dao.StuDao.updateStu(StuDao.java:66)
    at struts.action.UpdateAction.execute(UpdateAction.java:52)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    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:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at myfilter.MyFilter.doFilter(MyFilter.java:75)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
    还是有这个错误啊