当一个员工添加公告的时候这个User对象肯定是已经存在了--,Notice对象里面有User的属性,将User对象set进去,在你保存Notice对象的时候Hibernate会自动的为你保存User对象,其实这里的User对象是已经保存的,这个对象又没有改变呀---不知道我有没有理解你的意思?

解决方案 »

  1.   

    notice.setUser(user) ; //括号里面的user是发布这个公告的user对象
    this.getHibernateTemplate().save(notice);//配置文件的控制权要在Notice这端,<many-to-one inverse="false">
      

  2.   

    一个员工可以发表多条公告信息那user对象应该有一个集合类型的属性notices吧?按照hibernate的思想
    应该是ArraryList notices=user.getNotices();//取得列表
    循环{
    Notice n=new Notice();//新的公告信息
    notices.add(notice);加入列表
    }xxx.save(user);保存用户,级联保存公告列表;
      

  3.   

    6楼说的没错,但我的问题是保存notice时出的问题,报错信息是:org.apache.jasper.JasperException: java.lang.ClassCastException: org.hibernate.collection.PersistentBag cannot be cast to source.entity.User
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    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)
    控制台的错误信息是:
    2007-10-30 21:02:51 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet action threw exception
    java.lang.ClassCastException: org.hibernate.collection.PersistentBag cannot be cast to source.entity.User
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:135)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      

  4.   

    六楼和二楼说的都对,报这样的异常,我断定是你的----.hbm.xml配置有问题,或是你数据库中的数据有问题,要不你将原码发上去我给你调一下