<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName">
   <value>com.mysql.jdbc.Driver</value>
  </property>
  <property name="url">
   <value>jdbc:mysql://localhost:3306/test</value>
  </property>
  <property name="username">
   <value>root</value>
  </property>
  <property name="password">
   <value>hongjian</value>
  </property>
</bean> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource">
<ref bean="dataSource" />
</property>
<!-- entity 批量处理, 使用annonation模式 -->
<!-- 在test.entity下的bean文件,若写成test.entity.* 则映射不到-->
<property name="packagesToScan" value="cn.com.entity.mapping.*" />

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.connection.SetBigStringTryClob">true</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>这是我的数据源配置,我使用Mysql数据库,实体类也是在cn.com.entity.mapping这个包下。
下面是我的实体类package cn.com.entity.mapping;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="tbuser")
public class User {
private int userId;
private String userName;
private String userPass;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "userId",unique=true)
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}

@Column(name = "userName", length = 100)
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}

@Column(name = "userPass", length = 100)
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}


}
报的错误是Caused by: org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [FROM User user WHERE user.userName=? and user.userPass=?]

解决方案 »

  1.   

    <property name="packagesToScan" value="cn.com.entity.mapping.*" />这个地方改成
    <property name="packagesToScan" value="cn.com.entity.mapping" />试试
     value="cn.com.entity.mapping" 为实体类的包名
      

  2.   

     <property name="annotatedClasses">
         <list>
           <value>test.package.Foo</value>
           <value>test.package.Bar</value>
         </list>
       </property>
       <property name="annotatedPackages">
         <list>
           <value>test.package</value>
         </list>
       </property>
      

  3.   


    看到好多都是这样写<property name="packagesToScan" value="cn.com.entity.mapping.*" />的啊
      

  4.   

    你hibernate配置文件中也要加入对于的mapping
      

  5.   

    <!-- 开启注解处理器 -->  
    <context:annotation-config />
    <context:component-scan base-package="org.hdepc" />