快速业务通道

Hibernate继承映射时错误的解决方法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

Hibernate继承映射时错误的解决方法

时间:2011-08-13 Blog asklxf

借助于Hibernate强大的O/R Mapping能力,我们能够通过discriminator轻易地将一颗继承树映射到一 个表中,通过discriminator确定具体映射的子类。

在设置@hibernate.discriminator column="type" type="integer"后,启动Hibernate报错:

Could not format discriminator value to SQL string

搜索Hibernate官方文档后发现问题,原来Hibernate默认的discriminator的type是String,当设置 discriminator的type为integer后,需要为父类也设置@hibernate.class table="TABLE_NAME" discriminator-value="not null",否则,Hibernate默认的discriminator-value是完整的类名,在转换 String到int时造成NumberFormatException。

最后运行XDoclet,生成hbm文件:

<?XML version="1.0" encoding="iso-8859-1"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.crackJ2EE.example.AbstractClass" table="TABLE_NAME" discriminator- value="not null"> <id name="id" column="id" type="Java.lang.Long" unsaved-value="null">   <generator class="increment"/> </id> <discriminator column="type" not-null="true" type="integer"/>   <subclass name="com.crackj2ee.example.SubClass1" discriminator-value="1">   <subclass name="com.crackj2ee.example.SubClass2" discriminator-value="2"> </class> </hibernate-mapping>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号