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

有时候在对象-关系映射文件中要对持久化类中的一些字段进行转型,利用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,呵呵, 有时候一点不仔细会报出一大堆的异常,所以还是小心为好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值