需求:将一个servlet+Jsp的项目改成struts2(3.15)+hiberante4+String3(注解方式+tomcat)数据库用sql server 2008项目。
今天搭框架遇到的问题如下:
1.配置注解时,有一个表Examinee 采用 name,classId 两个字段作为主键,其中classId为外键。
解决方案:建立一个组合类Examineepk。类上注解:@Embeddable 如下
里面只有两个作为主键的字段。并且提供get,set方法 以及重写equals ,hashode,实现Serializable接口。其中因为classId为外键,所以在上面加了外键注解配置。而在类Examinee里面 只要加上 private ExamineePK examineePK; 并在其上加上注解@EmbeddedId
文档中还提供了其他的方法解决组合主键...
2.有一个表采用了上面两个组合主键作为外键,文档提供了解决方法,注意的是 名字要一致。
3.有些表的有些字段需要配置默认的值。如一个字段有个default '' ,注解配置方法:@Column(columnDefinition="varchar(255) default '' ") 需要导入包。
4.sql中字段类型text对应java.lang.String,通过注解无法得到text的类型,暂时采用varchar(5000)代替
5.因为数据库为sql server2008 所以方言要配置成相应的版本(hibernate4 文档中找),否则,有些字段类型无法匹配。