Hibernate的对象-关系映射文件中出现的问题

来源:互联网 发布:自定义字段数据库设计 编辑:程序博客网 时间:2024/06/07 08:56

有时候在对象-关系映射文件中要对持久化类中的一些字段进行转型,利用type属性将字段映射成Hibernate中的类型,但是如果在持久化中本身就是一个String类型,再到对象-关系映射文件中用type属性声明在Hibernate类型中为String类型,那么在Hibernate初始化的时候会出现一个异常:像下面这样

     [java] Initial SessionFactory failed: org.hibernate.MappingException: Could
 not determine type 
for: String, for columns: [org.hibernate.mapping.Column(Incr
ement_Name)]

 

说在指定的String类型的列上不能确定类型,

这是由于在一个String类型的字段上指定type属性为String而此发的,但是在用hbm2java或者hbm2ddl生成Java源文件或数据库Schema的时候却不会出错,这是在Hibernate3.2中出现的一个问题,用工具hbm2java的时候同样要在Hibernate初始化的时候加载对象-关系映射文件,却不出错,在运行的时候加载对象-关系映射文件就报出异常,其实这不是Hibernate本身的问题,在用工具hbm2java的时候用到的hibernate3.jar文件和运行的时候用到的hibernate3.jar是不同的两个jar文件,可以想到在这两个文件中解析XML的方式和验证机制并不相同,

要避免在运行的时候出现这个问题,可以在对象-关系映射文件中去掉type属性,就没有问题了

 

再开始是这样认为的,后来再仔细看书才知道在Hibernate的映射类型里面String对应的是string,而不是String,呵呵, 有时候一点不仔细会报出一大堆的异常,所以还是小心为好

原创粉丝点击