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,让学习和分享成为一种习惯!

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

文章出处: http://www.web158.com/web_list_content.asp?id=16257 借助于Hibernate强大的O/R Mapping能力,我们能够通过disc...
  • bruni
  • bruni
  • 2010年10月29日 14:27
  • 961

Hibernate继承映射的“Could not format discriminator value to SQL string”错误解决方法

借助于Hibernate强大的O/R Mapping能力,我们能够通过discriminator轻易地将一颗继承树映射到一个表中,通过discriminator确定具体映射的子类。 在设置@hiber...
  • chwhnster
  • chwhnster
  • 2006年03月05日 23:28
  • 1490

“Could not format discriminator value to SQL string...”错误的解决方法

继承映射关系中如果映射到一张表中,则父类子类都必须加上discriminator-value属性,否则会报此错误,另:discriminator-value类型默认是String类型的; ...
  • ynp507
  • ynp507
  • 2009年09月01日 14:20
  • 743

Hibernate继承映射详解

在面向对象的程序领域中,类与类之间是有继承关系的,例如Java世界中只需要extends关键字就可以确定这两个类的父子关系,但是在关系数据库的世界中,表与表之间没有任何关键字可以明确指明这两张表的父子...
  • wangpeng047
  • wangpeng047
  • 2012年02月21日 20:39
  • 1776

【Hibernate步步为营】--继承映射详解

继承是面向对象很重要的特性,它实现了代码的服用,在关系模型中同样也有继承关系,这种继承关系其实可以看做是一种枚举关系,一种类型中可以枚举出很多子类型,这些子类型和父对象形成了继承关系,能够对其进行枚举...
  • zhang_xinxiu
  • zhang_xinxiu
  • 2014年05月30日 09:21
  • 10318

Hibernate配置文件中关于discriminator 的一点解释

背景:Container是一个抽象类,他有两个子类,但共享一张数据表,相互之间用container_type字段进行区分 这个标签主要是定义类和子类的一个识别其也就是说类和子类,用container_...
  • daryl715
  • daryl715
  • 2007年03月12日 13:37
  • 2588

hibernate继承的三种映射策略( Inheritance mapping)

继承的三种映射策略 每个类级别一个表(父类和子类公用一张表) ... ...
  • almond8
  • almond8
  • 2016年11月30日 17:03
  • 470

深入浅出Hibernate之Discriminator的使用

电子商务系统中,设计商品数据表时,可能会通过多余字段将各种商品放置到同一个大的数据表中,此时,如何在查询时,辨别不同的商品呢? Hibernate中,使用了Discriminator(辨别标志)来解决...
  • ziiye_leaf
  • ziiye_leaf
  • 2009年03月10日 19:56
  • 9441

Hibernate继承映射三种策略学习

假设实体关系如下: 继承映射三种策略: 每个类分层结构 一张表  Table per class hierarchy...
  • wj_myth
  • wj_myth
  • 2011年09月18日 22:48
  • 4560

hibernate的继承映射

hibernate的继承映射探究
  • u011526599
  • u011526599
  • 2016年04月24日 14:26
  • 2542
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate继承映射“Could not format discriminator”错误解决
举报原因:
原因补充:

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