上周开始纠结于学hibernate还是iBATIS,拖到昨天才决定先学hibernate。回到学校,找到关于hibernate的参考书,稍微看一点书后,还是决定在网上找实例来学。
中间出了好些问题,先从网上载了hibernate包,发现要从其解压包中一个个拷出jar包导入,导入完后却发现MyEclipse有自带~哭~~
继续~
连上SqlServer数据库后,用db browser 查看,却发现我定义的那个用户没办法查看到数据库中已存在的表,但可以添加新表,网上找了半天,说是用户的权限问题,可我已经设为owner啦~哎~搞不定,先用odb用户凑合着。。。。
继续~~打开数据库,右键选中表UserInfo,选择hibernate reverse engineering,生成3个文件,之后打开hql editor 却出现Association references unmapped class:hib.MessageTable这个错误,原来MessageTable这个表有一个属性fromno是外键,参照UserInfo表里uerno,所以又要右键选中表MessageTable,选择hibernate reverse engineering 生成相关文件。接着又出现 could not instantiate id generator 这个错误,继续百度+Google,找到这篇http://topic.csdn.net/u/20080602/15/347e954e-5341-4041-9df8-5600312fe547.html
发现我选择hibernate reverse engineering 生成文件时配置错了,误会了ID Generator意思,以为只是随便写一个id,其实是设置id序列号生成器,UserInfo的主键生成方式应设为"uuid.hex"( <generator class="uuid.hex"></generator>),而MessageTable表的主键是设为的自增,所以要用"native"或 "indentity"( <generator class="indentity"></generator>)。
呼呼~ 一个上午就这些了。。。。吃饭先~