javax.servlet.ServletException: could not load an entity: [cup.edu.hibernate.Dept#1]
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
起 因org.hibernate.exception.JDBCConnectionException: could not load an entity: [cup.edu.hibernate.Dept#1]
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
org.hibernate.loader.Loader.loadEntity(Loader.java:1899)
org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:71)
org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:65)
org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3062)
org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:434)
org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:415)
org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:165)
org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:223)
org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:126)
org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:906)
org.hibernate.impl.SessionImpl.get(SessionImpl.java:843)
cup.edu.hibernate.DeptDAO.findById(DeptDAO.java:54)
cup.edu.struts.action.AddstuffAction.execute(AddstuffAction.java:59)
org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

解决方案 »

  1.   

    could not load an entity  无法读取实体对象如果没有猜错的话,是你的配置文件有错或者是实体对象没有映射
      

  2.   

    javax.servlet.ServletException: a different object with the same identifier value was already associated with the session: [cup.edu.hibernate.Stuff#44]
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    起 因org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [cup.edu.hibernate.Stuff#44]
    org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:191)
    org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:144)
    org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
    org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
    org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
    org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
    org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
    org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:563)
    org.hibernate.impl.SessionImpl.save(SessionImpl.java:551)
    org.hibernate.impl.SessionImpl.save(SessionImpl.java:547)
    cup.edu.hibernate.StuffDAO.save(StuffDAO.java:42)
    cup.edu.struts.action.AddstuffAction.execute(AddstuffAction.java:66)
    org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      

  3.   

    StuffDAO stuffDAO=new StuffDAO();
    Stuff stuff=new Stuff();
    stuff.setStuffid(addstuffForm.getStuffid());
    stuff.setStuffname(addstuffForm.getStuffname());
    stuff.setSex(addstuffForm.getSex());
    stuff.setAge(addstuffForm.getAge());
    stuff.setIdcard(addstuffForm.getIdcard());
    stuff.setWage(addstuffForm.getWage());
    stuff.setSocialsecurity(addstuffForm.getSocialsecurity());
    stuff.setEducation(addstuffForm.getEducation());
    stuff.setDegree(addstuffForm.getDegree());
    stuff.setTechgrade(addstuffForm.getTechgrade());
    System.out.println("addstuff---------->1");
    DeptDAO deptDAO=new DeptDAO();
    Dept dept=new Dept();
    dept=deptDAO.findById(addstuffForm.getDeptid());
    stuff.setDept(dept);

    stuff.setPosition(addstuffForm.getPosition());
    stuff.setTitle(addstuffForm.getTitle());
    stuff.setStatus(addstuffForm.getStatus());
    stuffDAO.save(stuff);
      

  4.   

    配置是照着一个示例配的,不清楚有没有问题。第一次插数据,程序走了一遍,但是数据库里没插成功。
    第二次action,出现这个提示:
    javax.servlet.ServletException: a different object with the same identifier value was already associated with the session: [cup.edu.hibernate.Stuff#44]
    应该指已经有了相同的数据吧。hibernate已经有数据了,但是没插到mysql里吧,这是为什么呢
      

  5.   

    (StuffDAO.java:42)是哪行?
    你 这Dept dept=new Dept();不要new 试试Dept dept=deptDAO.findById(addstuffForm.getDeptid());
      

  6.   


    public void save(Stuff transientInstance) {
    log.debug("saving Stuff instance");
    try {
    getSession().save(transientInstance);//42行
    log.debug("save successful");
    } catch (RuntimeException re) {
    log.error("save failed", re);
    throw re;
    }
    }
    应该是getSession()的问题,getSession()会出现什么问题呢?
    /hr/src/cup/edu/hibernate/IBaseHibernateDAO.javapackage cup.edu.hibernate;import org.hibernate.Session;
    /**
     * Data access interface for domain model
     * @author MyEclipse Persistence Tools
     */
    public interface IBaseHibernateDAO {
    public Session getSession();
    }
      

  7.   

    /hr/src/cup/edu/hibernate/BaseHibernateDAO.javapackage cup.edu.hibernate;import org.hibernate.Session;
    /**
     * Data access object (DAO) for domain model
     * @author MyEclipse Persistence Tools
     */
    public class BaseHibernateDAO implements IBaseHibernateDAO {

    public Session getSession() {
    return HibernateSessionFactory.getSession();
    }

    }*******************************************************************
    /hr/src/cup/edu/hibernate/HibernateSessionFactory.java    public static Session getSession() throws HibernateException {
            Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) {
    if (sessionFactory == null) {
    rebuildSessionFactory();
    }
    session = (sessionFactory != null) ? sessionFactory.openSession()
    : null;
    threadLocal.set(session);
    }        return session;
        }
    最后getSession()应该是在这里
      

  8.   

    你这个出现了往同一张表中插入相同主键的PO,没有看你完整的代码,我觉得stuff.setStuffid(addstuffForm.getStuffid());这一句是不是把主键给放进新的Stuff对象中了?建议把这一句去掉试试,希望说的能帮上楼主,或者抛砖引玉。