<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=?]
<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=?]
<property name="packagesToScan" value="cn.com.entity.mapping" />试试
value="cn.com.entity.mapping" 为实体类的包名
<list>
<value>test.package.Foo</value>
<value>test.package.Bar</value>
</list>
</property>
<property name="annotatedPackages">
<list>
<value>test.package</value>
</list>
</property>
看到好多都是这样写<property name="packagesToScan" value="cn.com.entity.mapping.*" />的啊
<context:annotation-config />
<context:component-scan base-package="org.hdepc" />