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

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

贊助商鏈接:

主站蜘蛛池模板: 永和县| 武宣县| 买车| 六枝特区| 宜章县| 黔江区| 凌海市| 聂荣县| 万全县| 迁安市| 获嘉县| 托克托县| 宁津县| 故城县| 惠水县| 泸西县| 苍梧县| 故城县| 茌平县| 改则县| 陇南市| 乾安县| 汉川市| 仁怀市| 中西区| 新昌县| 太康县| 泸溪县| 湛江市| 诸城市| 阿拉尔市| 元朗区| 灵川县| 汉源县| 宁南县| 普洱| 遂平县| 泾川县| 邻水| 富平县| 阿拉善右旗|