初学hibernate+struts,做了个增删改的东东查询没有问题,但是在做编辑的时候报了Unknown entity: Userinfo这个错,上网查了资料说是hibernate配置文件有错误,但是仔细查看了配置文件没有发现有错误,可能是小弟太笨,代码如下,求大家帮帮忙看看。。有什么问题,小弟在此先谢过了。错误log
org.hibernate.MappingException: Unknown entity: Userinfo
org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550)
org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:68)
org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
com.ccs.report.dao.UserinfoDAO.findById(UserinfoDAO.java:59)
com.ccs.report.struts.action.EdituserAction.execute(EdituserAction.java:46)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
hibernate配置
<mapping resource="com/ccs/report/pojo/Userinfo.hbm.xml" />action类
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
EdituserForm euf = (EdituserForm) form;// TODO Auto-generated method stub
UserinfoDAO udao=new UserinfoDAO();
Userinfo ui=null;
ui=udao.findById(euf.getId());
request.setAttribute("uis", ui);
*.hbm.xml配置文件和Userinfo类在一个包里

解决方案 »

  1.   

    你要贴出你的Userinfo.hbm.xml才行啊
      

  2.   

    <hibernate-mapping>
        <class name="com.ccs.report.pojo.Userinfo" table="userinfo" schema="dbo" catalog="selfuse">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="native"></generator>
            </id>
            <property name="workid" type="java.lang.Integer">
                <column name="workid" not-null="true" unique="true" />
            </property>
            <property name="name" type="java.lang.String">
                <column name="name" length="50" not-null="true" />
            </property>
            <property name="skill" type="java.lang.String">
                <column name="skill" length="20" />
            </property>
            <property name="groupname" type="java.lang.String">
                <column name="groupname" length="50" />
            </property>
            <property name="stat" type="java.lang.Integer">
                <column name="stat" />
            </property>
        </class>
    </hibernate-mapping>
      

  3.   

    你将Userinfo.hbm.xml里改为:<hibernate-mapping package="com.ccs.report.pojo"> 
    <class name="Userinfo" table="userinfo" schema="dbo" catalog="selfuse"> 
    看看
      

  4.   

    <class name="com.ccs.report.pojo.Userinfo" table="userinfo" schema="dbo" catalog="selfuse"> 
    中的name改成type,试试.
      

  5.   

    谢谢大家。
    原因是用了eclipse自动生成了到,把userinfo生成到了default package后我手动移动了文件,但是dao里面
        public Userinfo findById( java.lang.Integer id) {
            log.debug("getting Userinfo instance with id: " + id);
            try {
                Userinfo instance = (Userinfo) getSession().get("Userinfo", id);//这里没有指定Userinfo的路径加上全路径就好了
                return instance;
            } catch (RuntimeException re) {
                log.error("get failed", re);
                throw re;
            }
        }