学习springmvc时的坑

来源:互联网 发布:如何投诉app软件 编辑:程序博客网 时间:2024/06/06 09:51

学习springmvc时遇到的坑,记录下来

1.springmvc与hibernate版本的问题,导致生成sessionFactoryBean,使用packagesToScan,注解,自动装配遇到了各种问题

   spirngmvc3.0.5可以和hibernate3.5.5一起很好的使用,之前使用hibernate3.1-3.3还有hibernate4.1均被无限坑死,各种报错,各种无法转换,各种找不到类等等,使用springmvc3.1也同样不能写这些hibernate的版本配合,主要是需要使用org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean,如果你使用原始的org.springframework.orm.hibernate3.LocalSessionFactoryBean则没有这些问题

2.使用注解生成实体

 sessionFactory中的配置如下

  <property name="packagesToScan"><list><value>com.amigo.*</value></list> </property>

之前value一直是com.amigo.model.*

结果,果断被深深的坑了一把,一直报错:org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [from User],实体没有映射

直到网上找到一哥们在贴子里说要把model去掉,才解决这个BUG

实体类的代码如下:

/** * 实体类 */@Entity@Table(name="user")   //指定映射的表名public class User {@Id@GeneratedValue@Column(name = "id", nullable = false)private int id;@Column(name = "username") private String username;@Column(name = "password") private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public User() {}public User(String username, String password) {this.username = username;this.password = password;}@NotEmpty(message = "用户名不能为空")public String getUsername() {return username;}@Requiredpublic void setUsername(String username) {this.username = username;}@Size(min = 1, max = 10, message = "密码的长度应该在1和10之间")public String getPassword() {return password;}@Requiredpublic void setPassword(String password) {this.password = password;}}
0 0