hibernate3与orcle9i中的表映射问题请教
现oracle9i建了一张表名为USERLIST
字段如下:
-- Create table
create table USERLIST
(
  ID       NUMBER(20) not null,
  USERNAME VARCHAR2(200),
  USERPWD  VARCHAR2(200)
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table USERLIST
  add constraint XWTID primary key (ID)
  using index 
  tablespace USERS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );----------------------------
Userlist.hbm.xml如下<?xml version="1.0"?>
<!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="com.newstong.domain.Userlist" table="USERLIST" schema="DTSC">
        <id name="id" type="java.lang.Long">
            <column name="ID" precision="20" scale="0" />
            <generator class="increment" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="USERNAME" length="200" />
        </property>
        <property name="userpwd" type="java.lang.String">
            <column name="USERPWD" length="200" />
        </property>
    </class>
</hibernate-mapping>在点编辑按钮后,在接受编辑页面报错,错误如下:
com.newstong.domain.Userlist$$EnhancerByCGLIB$$af4eca7c.getUsername(<generated>)请问如何映谢呢

解决方案 »

  1.   

    全部错误如下
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.String
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    com.newstong.web.filters.SetEncodingFilter.doFilter(SetEncodingFilter.java:62)
    root cause java.lang.ClassCastException: java.lang.String
    org.hibernate.type.LongType.set(LongType.java:40)
    org.hibernate.type.NullableType.nullSafeSet(NullableType.java:62)
    org.hibernate.type.NullableType.nullSafeSet(NullableType.java:44)
    org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1115)
    org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1177)
    org.hibernate.loader.Loader.doQuery(Loader.java:390)
    org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
    org.hibernate.loader.Loader.loadEntity(Loader.java:1345)
    org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:116)
    org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:101)
    org.hibernate.persister.entity.BasicEntityPersister.load(BasicEntityPersister.java:2471)
    org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:351)
    org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:332)
    org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:113)
    org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:75)
    org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:643)
    org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:59)
    org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:84)
    org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:134)
    com.newstong.domain.Userlist$$EnhancerByCGLIB$$af4eca7c.getUsername(<generated>)
    org.apache.jsp.updatestu_jsp._jspService(updatestu_jsp.java:88)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    com.newstong.web.filters.SetEncodingFilter.doFilter(SetEncodingFilter.java:62)
      

  2.   

    应该是jsp上的cast错误吧,仔细检查
      

  3.   

    接受点击编辑按钮的界面如下:<%@ page language="java" contentType="text/html; charset=gb2312"%>
    <%@ page import="java.sql.*,com.newstong.domain.Userlist,com.newstong.dao.StudentDAO,com.newstong.dao.DAOFactory"%>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
    <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
    <html>
    <head>
    <title>修改学生信息</title>
    </head>
    <body>
    <p>
    <%
    String stu_id = request.getParameter("student_id");
    System.out.println("Student_id = " + stu_id);
    String name = "", id = "", password = "", jiguan = "", dep = "", sex = "", tel = "", mail = "",  = "";
    StudentDAO stuDao = DAOFactory.getInstance().createStudentDAO();
    Userlist stu = stuDao.getStudentByID(stu_id);
    out.println(stu_id);
    name = stu.getUsername();
    password = stu.getUserpwd();
    //name = stu.getUsername();
    //System.out.println(password);

    //sex = stu.getSex();
    //jiguan = stu.getJiguan();
    //dep = stu.getDepartment();

    %>
    </p>
    <p align="center">
    更新学生
    </p>
    <form method="post" action="/XwtPro/editStudent.do?student_id=<%//=stu_id%>">
    <table width="49%" height="50" border="1" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td width="48%">
    学生姓名
    </td>
    <td width="52%">
    <html:text property="name" value="<%//=name%>" />
    </td>
    </tr>
    <tr>
    <td>
    密码
    </td>
    <td>
    <html:password property="password" value="<%//=password%>" />
    </td>
    </tr>
    <tr>
    <td>
    学生所在系
    </td>
    <td>
    <html:select property="department" size="3" value="<%//=dep%>">
    <html:option key="a" value="计算机">计算机</html:option>
    <html:option key="b" value="机械系">机械系</html:option>
    <html:option key="b" value="电子系">电子系</html:option>
    <html:option key="b" value="数学系">数学系</html:option>
    <html:option key="b" value="人文学院">人文学院</html:option>
    <html:option key="b" value="管理学院">管理学院</html:option>
    </html:select>
    </td>
    </tr>
    <tr>
    <td>
    性别
    </td>
    <td>
    <html:select property="sex" size="1" value="<%//=sex%>">
    <html:option key="a" value="男">男</html:option>
    <html:option key="b" value="女">女</html:option>
    </html:select>
    </td>
    </tr>
    <tr>
    <td>
    籍贯
    </td>
    <td>
    <html:select property="jiguan" multiple="true" size="2" value="<%//=jiguan%>">
    <html:option key="a" value="北京">北京</html:option>
    <html:option key="b" value="天津">天津</html:option>
    <html:option key="b" value="上海">上海</html:option>
    <html:option key="b" value="重庆">重庆</html:option>
    <html:option key="b" value="新疆">新疆</html:option>
    <html:option key="b" value="云南">云南</html:option>
    <html:option key="c" value="广州">广州</html:option>
    </html:select>
    </td>
    </tr>
    </table>
    <p align="center">
    <input type="submit" name="Submit" value="提交">
    </p>
    </form>
    <p>
    <a href="getStudent.jsp">&lt;&lt;Back</a>
    </p>
    </body>
    </html>
      

  4.   

    <%@ page language="java" contentType="text/html; charset=gb2312"%>
    <%@ page import="java.sql.*,com.newstong.domain.Userlist,com.newstong.dao.StudentDAO,com.newstong.dao.DAOFactory"%>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
    <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
    <html>
    <head>
    <title>修改学生信息</title>
    </head>
    <body>
    <p>
    <%
    String stu_id = request.getParameter("student_id");
    System.out.println("Student_id = " + stu_id);
    String name = "", id = "", password = "";
    StudentDAO stuDao = DAOFactory.getInstance().createStudentDAO();
    Userlist stu = stuDao.getStudentByID(stu_id);
    out.println(stu_id);
    name = stu.getUsername();
    password = stu.getUserpwd();
    //name = stu.getUsername();
    %>
    </p>
    </body>
    </html>