| 
 | 
 
(下面这个是Forum.hbm.xml) 
<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<!--  
    Mapping file autogenerated by MyEclipse - Hibernate Tools 
--> 
<hibernate-mapping> 
    <class name="org.linyubin.vo.Forum" table="forum"> 
        <id name="forumId" type="java.lang.Integer"> 
            <column name="forumId" /> 
            <generator class="increment" /> 
        </id> 
        <property name="forumName" type="java.lang.String"> 
            <column name="forumName" length="20" not-null="true" /> 
        </property> 
        <property name="date" type="java.util.Date"> 
            <column name="date" length="10" not-null="true" /> 
        </property> 
       <set name="topics" inverse="true"> 
       <key><column name="forumId"></column></key> 
       <one-to-many class="org.linyubin.vo.Topic"/> 
       </set> 
    </class> 
</hibernate-mapping> 
 
说明:Forum这个类是 论坛类,相当于我们这里 的J2EE原创讨论区,Topic是 话题类,比如我发表的这个就属于一个话题 
 
(下面这个是ActionForm) 
package org.linyubin.vo; 
import java.text.ParsePosition; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.util.HashSet; 
import org.apache.struts.action.ActionForm; 
 
/** 
* Forum generated by MyEclipse - Hibernate Tools 
*/ 
public class Forum extends ActionForm implements java.io.Serializable { 
 
    // Fields     
     private Integer forumId; 
     private User user; 
     private String forumName; 
     private Date date; 
     private String year; 
     private String month; 
     private String day; 
     private HashSet topics=new HashSet(0); 
    // Constructors 
    /** default constructor */ 
    public Forum() { 
    } 
/** minimal constructor */ 
    public Forum(String forumName, Date date) { 
        this.forumName = forumName; 
        this.date = date; 
    } 
     
    /** full constructor */ 
    public Forum(User user, String forumName, Date date) { 
        this.user = user; 
        this.forumName = forumName; 
        this.date = date; 
    } 
    
    // Property accessors 
    public Integer getForumId() { 
        return this.forumId; 
    } 
     
    public void setForumId(Integer forumId) { 
        this.forumId = forumId; 
    } 
    public User getUser() { 
        return this.user; 
    } 
     
    public void setUser(User user) { 
        this.user = user; 
    } 
    public String getForumName() { 
        return this.forumName; 
    } 
     
    public void setForumName(String forumName) { 
        this.forumName = forumName; 
    } 
    public Date getDate() { 
     SimpleDateFormat   formatter=new   SimpleDateFormat("yyyy-MM-dd");   
     ParsePosition   pos=new   ParsePosition(0);   
     return formatter.parse(this.year+"-"+this.month+"-"+this.day, pos); 
    } 
     
    public void setDate(Date date) { 
        this.date = date; 
    } 
public HashSet getTopics() { 
  return topics; 
} 
public void setTopics(HashSet topics) { 
  this.topics = topics ;               //应该 是 在setTopics时候出错,要怎么办? 
} 
public String getDay() { 
  return day; 
} 
public void setDay(String day) { 
  this.day = day; 
} 
public String getMonth() { 
  return month; 
} 
public void setMonth(String month) { 
  this.month = month; 
} 
public String getYear() { 
  return year; 
} 
public void setYear(String year) { 
  this.year = year; 
} 
   
} 
(下面这个是Action,其path是 /forum) 
 
package org.linyubin.struts.action; 
import java.util.List; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.apache.struts.action.ActionForm; 
import org.apache.struts.action.ActionForward; 
import org.apache.struts.action.ActionMapping; 
import org.apache.struts.actions.DispatchAction; 
import org.linyubin.dao.ForumDAO; 
import org.linyubin.vo.Forum; 
 
 
public class ForumAction extends DispatchAction { 
 
private ForumDAO forumDao; 
 
public ActionForward insertForum(ActionMapping mapping, ActionForm form, 
   HttpServletRequest request, HttpServletResponse response) { 
  Forum forumForm = (Forum) form 
  forumDao.save(forumForm); 
  List forums=forumDao.findForums(); 
  request.setAttribute("forums", forums); 
  return mapping.findForward("showForums"); 
} 
} 
 
(下面这个是Jsp) 
<body> 
  <center> 
  <table> 
  <html:form action="/forum.do?method=insertForum"> 
   <tr> 
    <td>论坛名:</td><td><html:text property="forumName"/></td> 
   </tr> 
   <tr> 
   <td>创建者:</td> 
    <td><bean:write name="user" property="userName"/></td> 
   </tr> 
   <tr> 
   <td>日期:</td> 
    <td> 
<html:text property="year"/>年<html:text property="month"/>月<html:text property="day"/>日 
    </td> 
    </tr> 
    <tr> 
    <td colspan="2" align="center"> 
<html:submit value="新增"></html:submit> 
    </td> 
   </tr> 
   </html:form> 
   </table> 
   </center> 
  </body> 
 
在插入 时候 报告错误如下: 
严重: Servlet.service() for servlet action threw exception 
java.lang.ClassCastException: org.hibernate.collection.PersistentSet cannot be cast to java.util.HashSet 
at com.linyubin.vo.Forum$$BulkBeanByCGLIB$$6a279a71.setPropertyValues(<generated>) 
at org.hibernate.tuple.PojoTuplizer.setPropertyValuesWithOptimizer(PojoTuplizer.java:200) 
at org.hibernate.tuple.PojoTuplizer.setPropertyValues(PojoTuplizer.java:173) 
at org.hibernate.persister.entity.BasicEntityPersister.setPropertyValues(BasicEntityPersister.java:2919) 
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:225) 
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:160) 
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:108) 
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184) 
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) 
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173) 
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) 
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69) 
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481) 
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476) 
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:617) 
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366) 
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:614) 
at org.linyubin.dao.ForumDAO.save(ForumDAO.java:34) 
at com.linyubin.struts.action.ForumAction.insertForum(ForumAction.java:57) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274) 
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194) 
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:710) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at com.linyubin.filter.Chinese.doFilter(Chinese.java:76) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:818) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:624) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) 
at java.lang.Thread.run(Thread.java:619) 
 
[ 本帖最后由 lovejava 于 2007-4-19 17:35 编辑 ] |   
 
 
 
 |