成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

Hibernate繼承映射時錯誤的解決方法

2010-08-28 10:48:35來源:西部e網作者:

    借助于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>
關鍵詞:Hibernate

贊助商鏈接:

主站蜘蛛池模板: 耿马| 潼南县| 安达市| 鄂托克旗| 当涂县| 石屏县| 桃园市| 牡丹江市| 茶陵县| 贵定县| 凭祥市| 翼城县| 赤水市| 西峡县| 延长县| 芜湖县| 万盛区| 吉木乃县| 广饶县| 阳江市| 扎囊县| 阿荣旗| 藁城市| 宜丰县| 罗定市| 南江县| 天镇县| 日土县| 阳谷县| 大安市| 青海省| 灵山县| 柳林县| 青川县| 汽车| 铜山县| 林周县| 南靖县| 木里| 长子县| 灵武市|