奇怪的hibernate问题。
本人在做一个数据库移植的项目中,发现了一个很奇怪的hibernate问题。提出来希望各位有兴趣的朋友指点一下。这个项目就是在w2k下把原先sql server 2000中的所有数据(包括主键生成规则、作业等等),全部转到sybase(版本12.5)中去,用hibernate进行数据库的映射。奇怪的问题就出现在这里,在xml文件里,数据库里表里面的字段类型分别是“int”、“varchar”、“numeric”、“datetime”等等,对应为java里面的类型则全部为string,而hibernate向数据库提交数据的时候都是先把string转为char型,然后再写入数据库。当用hibernate向sql server 2000里提交数据的时候,hibernat把所有的string型转为char型,然后再根据sql数据库表里不同的字段类型,自动用convert转换后拼一条sql语句,这样就一点问题都没有。可是很奇怪的是,当hibernate向sybase写入数据的时候,居然就没有了自动转换的功能,也就是说hibernate把string转成char后没有再根据sybase中表里面的不同类型字段再转换一次。于是程序文件在以sybase为数据库是就出现了很多“char不允许转换为int、char不允许转换为numeric”这样的问题了。除非是hibernate不支持的数据库,否则hibernate的功能应该是一样的,不可能说对这个数据库有这个功能,对另一个数据库就没有了,请教有过这方面经验或者知道症状所在的朋友指点指点