我的Blog我做主^_^

          走向一條通往JAVA的不歸路...

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            64 隨筆 :: 68 文章 :: 77 評論 :: 0 Trackbacks
           

          借助于Hibernate強(qiáng)大的O/R Mapping能力,我們能夠通過discriminator輕易地將一顆繼承樹映射到一個表中,通過discriminator確定具體映射的子類。

           

          在設(shè)置@hibernate.discriminator column="type" type="integer"后,啟動Hibernate報錯:

          Could not format discriminator value to SQL string

           http://dev.csdn.net/article/82/82734.shtm

          http://forum.hibernate.org/viewtopic.php?t=974225

          搜索Hibernate官方文檔后發(fā)現(xiàn)問題,原來Hibernate默認(rèn)的discriminatortypeString,當(dāng)設(shè)置discriminatortypeinteger后,需要為父類也設(shè)置@hibernate.class table="TABLE_NAME" discriminator-value="not null",否則,Hibernate默認(rèn)的discriminator-value是完整的類名,在轉(zhuǎn)換Stringint時造成NumberFormatException

           

          最后運(yùn)行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>



          posted on 2008-10-22 10:48 java_蟈蟈 閱讀(1059) 評論(0)  編輯  收藏 所屬分類: HIBERNATE
          主站蜘蛛池模板: 东兴市| 昔阳县| 砚山县| 柘城县| 香港 | 运城市| 韶关市| 河西区| 鹤岗市| 永清县| 高青县| 射阳县| 洛阳市| 邹城市| 苏尼特左旗| 哈尔滨市| 眉山市| 海伦市| 南和县| 东乡族自治县| 启东市| 合阳县| 延长县| 吉安市| 佛教| 北碚区| 鹿泉市| 建始县| 桑日县| 邳州市| 淅川县| 板桥市| 天津市| 玛曲县| 汉阴县| 咸阳市| 柞水县| 深水埗区| 洞头县| 凯里市| 崇礼县|