知道美河 | 上传资料 | VIP申请 | 精品课程 | 资料搜索 | 问题反馈 | 会员手册 | 积分消费 | 积分充值 | 帐号保护
美河学习学习在线赞助VIP

美河学习在线(主站) eimhe.com

 找回密码
 建立账号
查看: 9172|回复: 3

[求助] 大哥,帮我看看哪里错,要怎么弄呢?

[复制链接]
发表于 2007-4-19 17:32:45 | 显示全部楼层 |阅读模式
(下面这个是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 编辑 ]
发表于 2007-4-19 18:46:22 | 显示全部楼层
 楼主| 发表于 2007-4-19 22:55:07 | 显示全部楼层
forumDao的 set 和 get  的方法,我当然有了,只是没写出来啦,不是这个问题啦,是 因为ActionForm里有个 集合topic,可jsp页面中 又不可能填充这个属性,该怎么办啊,谁帮我想想啊,谢谢了

[ 本帖最后由 lovejava 于 2007-4-19 22:56 编辑 ]
 楼主| 发表于 2007-4-20 11:58:19 | 显示全部楼层
我感觉,我们的老师 可否 讲些SSH的一对一,一对多的关系,如果集合写在ActionForm这里,那jsp怎么提交上来处理呢?
您需要登录后才可以回帖 登录 | 建立账号

本版积分规则

 
QQ在线咨询

QQ|小黑屋|手机版|Archiver|美河学习在线 ( 浙网备33020302000026号 )

GMT+8, 2025-5-7 20:14

Powered by Discuz!

© 2001-2025 eimhe.com.

快速回复 返回顶部 返回列表