<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
  <!-- Hibernate SessionFactory -->
  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>    <!--
      根据包来配置映射文件-->
      <property name="mappingDirectoryLocations">
      <list>
       <value>classpath:/com/btg/model/orm</value>
      </list>
      </property>      <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
        <prop key="hibernate.show_sql">false</prop>
      </props>
    </property>
  </bean>
 
  <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
  </bean>
  
  <bean id="dao" class="com.btg.dao.hibernate.BaseDAOHibernate">
    <property name="sessionFactory" ref="sessionFactory"/>
  </bean>
</beans><?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.btg.model">
    <class name="UserInfo" table="userinfo" >
        <id name="id" type="java.lang.String">
            <column name="id" />
            <generator class="assigned" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" not-null="true" />
        </property>
         <property name="password" type="java.lang.String">
            <column name="password" not-null="true" />
        </property>
        <property name="createDate" type="java.util.Date">
            <column name="createDate" not-null="true" />
        </property>
        <property name="lastLoginTime" type="java.util.Date">
            <column name="lastLoginTime" not-null="false" />
        </property>
        <property name="lastLoginIp" type="java.lang.String">
            <column name="lastLoginIp" not-null="false" />
        </property>
        <property name="merchantId" type="java.lang.String">
            <column name="merchantId" not-null="true" />
        </property>

<many-to-one name="role" column="roleId" class="Role" not-null="true" />
    </class>
</hibernate-mapping>package com.btg.model;import java.util.Date;public class UserInfo extends BaseModel {
    private String name;
    private String password;
    private Role role = new Role();
    private Date createDate;
    private Date lastLoginTime;
    private String lastLoginIp;
    private String merchantId;    public String getName() {
return name;
    }    public void setName(String name) {
this.name = name;
    }    public String getPassword() {
return password;
    }    public void setPassword(String password) {
this.password = password;
    }    public Role getRole() {
return role;
    }    public void setRole(Role role) {
this.role = role;
    }    public Date getCreateDate() {
return createDate;
    }    public void setCreateDate(Date createDate) {
this.createDate = createDate;
    }    public Date getLastLoginTime() {
return lastLoginTime;
    }    public void setLastLoginTime(Date lastLoginTime) {
this.lastLoginTime = lastLoginTime;
    }    public String getLastLoginIp() {
return lastLoginIp;
    }    public void setLastLoginIp(String lastLoginIp) {
this.lastLoginIp = lastLoginIp;
    }    public String getMerchantId() {
return merchantId;
    }    public void setMerchantId(String merchantId) {
this.merchantId = merchantId;
    }
}
package com.btg.dao.hibernate.admin;import java.util.Date;import java.util.List;import com.btg.common.exception.BTGException;
import com.btg.dao.UserInfoDao;
import com.btg.dao.hibernate.BaseDAOHibernate;
import com.btg.model.UserInfo;public class UserInfoDAOHibernate extends BaseDAOHibernate implements UserInfoDao {    public void deleteUser(UserInfo user) throws BTGException {
// TODO Auto-generated method stub

    }    public UserInfo getUser(UserInfo user) throws BTGException {
// TODO Auto-generated method stub
return null;
    }
    
    public List<UserInfo> getUserList(UserInfo user) throws BTGException {
user.setId("123456");
user.setName("12265468");
user.setLastLoginIp("12424225");
user.setCreateDate(new Date());
user.setLastLoginTime(new Date());
user.setMerchantId("121212");
user.setPassword("1215421");
user.getRole().setId("1");
user.setPassword("1231");

this.getSession().update(user);
return null;
    }}这是我全部相关的类
错误信息
WARN [btpool0-1] AbstractExceptionHandler.execute(95) | Unhandled exception
org.hibernate.MappingException: Unknown entity: com.btg.model.UserInfo 我在网上找了好长时间  还是没有搞定  这个是和spring集成在一起,哪个帮忙给我看一下

解决方案 »

  1.   

    完整的错误信息
    WARN [btpool0-1] AbstractExceptionHandler.execute(95) | Unhandled exception
    org.hibernate.MappingException: Unknown entity: com.btg.model.UserInfo
    at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548)
    at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:213)
    at org.hibernate.event.def.DefaultUpdateEventListener.performSaveOrUpdate(DefaultUpdateEventListener.java:33)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    at org.hibernate.impl.SessionImpl.fireUpdate(SessionImpl.java:564)
    at org.hibernate.impl.SessionImpl.update(SessionImpl.java:552)
    at org.hibernate.impl.SessionImpl.update(SessionImpl.java:544)
    at com.btg.dao.hibernate.admin.UserInfoDAOHibernate.getUserList(UserInfoDAOHibernate.java:35)
    at com.btg.service.impl.admin.LoginServiceImpl.browseUser(LoginServiceImpl.java:25)
    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:585)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy2.browseUser(Unknown Source)
    at com.btg.web.admin.action.LoginAction.index(LoginAction.java:29)
    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:585)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
    at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
      

  2.   

    好像是UserInfo.htm.xml没有加载成功,但要怎么样加载,搞了好长时间,还是没有搞定,哪个空帮我看看
      

  3.   

    路径写错了<!--
          根据包来配置映射文件-->
          <property name="mappingDirectoryLocations">
              <list>
                  <value>classpath:/com/btg/model/orm</value>
              </list>
          </property>
      

  4.   

    根据包来加载<context:component-scan base-package="com.sunshine" />
    <property name="packagesToScan">
    <list>
       <value>com.sunshine.model</value>
    </list>
    </property>
      

  5.   

    <value>classpath:/com/btg/model/orm</value>
    这句错了吧。。
      

  6.   

    <value>classpath:/com/btg/model/orm</value>应改为:
    <value>classpath:/com/btg/model/orm/</value>
      

  7.   


    <id name="id" type="java.lang.String">
                <column name="id" />
                <generator class="assigned" />
    </id>
    主键不需要在 实体类中定义吗?
      

  8.   

    hbm.xml文件格式内容是否符合hibernate的dtd
    该hbm.xml是否被加进来
      

  9.   

    这种不行,我这里报错
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accesserDAO' defined in file [D:\workspace-web\BTG\target\classes\spring\applicationContext-admin-hibernate.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [D:\workspace-web\BTG\target\classes\spring\applicationContext-hibernate.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'packagesToScan' of bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Bean property 'packagesToScan' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
    Caused by: 
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [D:\workspace-web\BTG\target\classes\spring\applicationContext-hibernate.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'packagesToScan' of bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Bean property 'packagesToScan' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
    Caused by: 
    org.springframework.beans.NotWritablePropertyException: Invalid property 'packagesToScan' of bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Bean property 'packagesToScan' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
      

  10.   

    <value>classpath:/com/btg/model/orm/</value>是要这样的。
      

  11.   

        user.setId("123456");
        user.setName("12265468");
        user.setLastLoginIp("12424225");
        user.setCreateDate(new Date());
        user.setLastLoginTime(new Date());
        user.setMerchantId("121212");
        user.setPassword("1215421");
        user.getRole().setId("1");
        user.setPassword("1231");
        
        this.getSession().update(user);修改主键了?
      

  12.   

    Unknown entity: com.btg.model.UserInfo应该是你更新的是数据库中不存在的记录
      

  13.   


    。我这个程序本来先是做增加操作的,使用的是save这个方法  但还是不行,数据库里就没有记录