Hibernate继承映射“Could not format discriminator”错误解决

原创 2007年09月22日 22:24:00

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

 

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

Could not format discriminator value to SQL string

 

搜索Hibernate官方文档后发现问题,原来Hibernate默认的discriminatortypeString,当设置discriminatortypeinteger后,需要为父类也设置@hibernate.class table="TABLE_NAME" discriminator-value="not null",否则,Hibernate默认的discriminator-value是完整的类名,在转换Stringint时造成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.javaeedev.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.javaeedev.example.SubClass1" discriminator-value="1">

        <subclass name="com.javaeedev.example.SubClass2" discriminator-value="2">

    </class>

</hibernate-mapping>

 
版权声明:欢迎加入开源技术 Q 群:242561391,让学习和分享成为一种习惯!

相关文章推荐

lib_clapack.a(dlasyf.o): could not read symbols: File in wrong format---- 交叉编译opencv2.0遇到的错误解决

首先下载opencv2.0的源码http://www.pudn.com/downloads471/sourcecode/graph/opencv/detail1972436.html,opencv从2...

Hibernate入门07_继承映射01_discriminator方式

一、映射继承三种方式1、discriminator方式,子类和父类公用一张表2、joined方式3、union方式二、以Student继承Person为例,先说第1种,后两种分别下一篇文章说及。三、代...

hibernate3中出现 could not initialize proxy - no Session 错误的解决办法以及lazy load的介绍

could not initialize proxy - no Session 异常: org.hibernate.LazyInitializationException: could not...

hibernate3中出现 could not initialize proxy - no Session 错误的解决办法以及lazy load的介绍

could not initialize proxy - no Session 异常: org.hibernate.LazyInitializationException: could not...

【Hibernate错误解决办法】Could not execute JDBC batch update; Data too long for column 'name' at row 1

刚开始学Hibernate

hibernate3中出现 could not initialize proxy - no Session 错误的解决办法以及lazy load的介绍

hibernate3中出现 could not initialize proxy - no Session 错误的解决办法以及lazy load的介绍 could not initialize pro...

Hibernate数据关联映射出现Could not execute JDBC batch update的异常处理

Hibernate数据关联映射出现Could not execute JDBC batch update的异常处理该异常是在创建多对多映射时出现的,当时考虑创建老师表和学生表,老师和学生的关系符合多对...

Hibernate : could not deserialize 错误

错误信息: ERROR StatusLogger appenders contains an invalid element or attribute "param" Exception...

Hibernate3 错误: could not initialize proxy - no Session

Hibernate3 错误: could not initialize proxy - no Session 异常:org.hibernate.LazyInitializationException:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)