<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    blogjava's web log

    blogjava's web log
    ...

    hibernate繼承-joined-subclass 已更新(五)

    還是和前面一樣。。先看先看由滿江紅翻譯團(tuán)隊(duì)(RedSaga Translate Team)翻譯的配置說(shuō)明


    每個(gè)子類可能被映射到他自己的表中(每個(gè)子類一個(gè)表的策略)。被繼承的狀態(tài)通過(guò)和超類的表關(guān)聯(lián)得到。我們使用<joined-subclass>元素。
    <joined-subclass
            name="ClassName"                    (1)
            table="tablename"                   (2)
            proxy="ProxyInterface"              (3)
            lazy="true|false"                   (4)
            dynamic-update="true|false"
            dynamic-insert="true|false"
            schema="schema"
            catalog="catalog"
            extends="SuperclassName"
            persister="ClassName"
            subselect="SQL expression"
            entity-name="EntityName"
            node="element-name">
    
            <key .... >
    
            <property .... />
            .....
    </joined-subclass>
    (1)

    name: 子類的全限定名。

    (2)

    table: 子類的表名.

    (3)

    proxy (可選): 指定一個(gè)類或者接口,在延遲裝載時(shí)作為代理使用。

    (4)

    lazy (可選, 默認(rèn)是 true): 設(shè)置為 lazy="false" 禁止使用延遲裝載。

    這種映射策略不需要指定辨別標(biāo)志(discriminator)字段。但是,每一個(gè)子類都必須使用<key>元素指定一個(gè)表字段來(lái)持有對(duì)象的標(biāo)識(shí)符。


    好了。。。開(kāi)始 寫(xiě)代碼了。。。
    1.建表

    create?table?animal
    (aid?
    varchar(32)?not?null?primary?key)

    create?table?dog
    (aid?
    varchar(32)?not?null?primary?key,
    ?dname?
    varchar(16)
    )

    create?table?cat
    (aid?
    varchar(32)?not?null?primary?key,
    ?cname?
    varchar(16)
    )
    ?2 寫(xiě)vo
    ?2.1 Animal.java
    package?com.test;

    public?class?Animal
    {
    ????
    private?String?aid;
    ??
    //getter?setter
    2.2
    Car.java
    package?com.test;

    public?class?Cat?extends?Animal
    {
    ????
    private?String?cname;

    //寫(xiě)上?get?set?方法
    ? 2.3
    Dog.java
    package?com.test;

    public?class?Dog?extends?Animal
    {
    ????
    private?String?dname;
    //寫(xiě)getter?setter

    3.寫(xiě)配置文件
    <?xml?version="1.0"?>
    <!DOCTYPE?hibernate-mapping
    ????PUBLIC?"-//Hibernate/Hibernate?Mapping?DTD//EN"
    ????"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
    >

    <hibernate-mapping>

    ????
    <class?name="com.test.Animal"?table="animal">??

    ????????
    <id?name="aid"?type="string"?unsaved-value="null"?>
    ????????????
    <column?name="aid"?sql-type="char(32)"?not-null="true"/>
    ????????????
    <generator?class="uuid.hex"/>
    ????????
    </id>
    ????????
    ????????
    <joined-subclass?name="com.test.Dog"?table="dog">
    ????????????
    <key?column="aid"/>
    ????????????
    <property?name="dname">
    ????????????????
    <column?name="dname"?sql-type="varchar(16)"/>
    ????????????
    </property>
    ????????
    </joined-subclass>

    ????????
    <joined-subclass?name="com.test.Cat"?table="cat">
    ????????????
    <key?column="aid"/>
    ????????????
    <property?name="cname">
    ????????????????
    <column?name="cname"?sql-type="varchar(16)"/>
    ????????????
    </property>
    ????????
    </joined-subclass>

    ????
    </class>

    </hibernate-mapping>

    4.寫(xiě)上測(cè)試類
    package?com.test;

    import?net.sf.hibernate.Session;
    import?net.sf.hibernate.SessionFactory;
    import?net.sf.hibernate.cfg.Configuration;
    import?net.sf.hibernate.*;
    import?java.sql.*;
    import?java.util.List;
    import?java.util.Iterator;

    public?class?TestInherit2
    {
    ????SessionFactory?sf;
    ????Session?session;
    ????
    public?TestInherit2()
    ????
    {
    ????????
    try
    ????????
    {
    ????????????Configuration?cfg?
    =?new?Configuration();
    ????????????sf?
    =?cfg.addClass(Animal.class).buildSessionFactory();
    ????????}

    ????????
    catch(HibernateException?ex)
    ????????
    {
    ????????????ex.printStackTrace();
    ????????}

    ????}

    ????
    //插入
    ????public?void?doCreate()
    ????
    {
    ????????
    try
    ????????
    {
    ????????????session?
    =?sf.openSession();

    ????????????Dog?dog?
    =?new?Dog();
    ????????????dog.setDname(
    "small?dog");
    ????????????Cat?cat?
    =?new?Cat();
    ????????????cat.setCname(
    "small?cat");
    ????????????session.save(dog);
    ????????????session.save(cat);
    ????????????session.flush();
    ????????????session.connection().commit();

    ????????}

    ????????
    catch(HibernateException?ex)
    ????????
    {
    ????????????ex.printStackTrace();
    ????????}

    ????????
    catch(SQLException?ex1)
    ????????
    {
    ????????????ex1.printStackTrace();
    ????????}

    ????????
    finally
    ????????
    {
    ????????????????
    try{
    ????????????????????session.close();
    ????????????????}

    ????????????????
    catch(HibernateException?ex2){
    ????????????????}

    ????????}


    ????}

    ????
    //查詢
    ????public?void?doQuery()
    ????
    {
    ????????
    try{
    ????????????session?
    =?sf.openSession();
    ????????????Query?q?
    =?session.createQuery("select?d?from?Dog?as?d");
    ????????????List?l?
    =?q.list();
    ????????????Dog?dog?
    =?null;
    ????????????Cat?cat?
    =?null;
    ????????????
    for(int?i=0;i<l.size();i++)
    ????????????
    {
    ????????????????dog?
    =?(Dog)l.get(i);
    ????????????????System.out.println(dog.getDname());
    ????????????}

    ????????}

    ????????
    catch(HibernateException?ex){
    ????????????ex.printStackTrace();
    ????????}

    ????????
    finally{
    ????????????
    try{
    ????????????????session.close();
    ????????????}

    ????????????
    catch(HibernateException?ex2){
    ????????????}

    ????????}

    ????}

    ????
    public?static?void?main(String[]?args)
    ????
    {
    ????????TestInherit2?t?
    =?new?TestInherit2();
    ????????
    //t.doCreate();
    ????????t.doQuery();
    ????}

    }

    posted on 2006-04-11 22:28 record java and net 閱讀(3415) 評(píng)論(1)  編輯  收藏 所屬分類: java

    評(píng)論

    # re: hibernate繼承-joined-subclass 已更新(五) 2011-12-02 11:30 陳小東

    學(xué)習(xí)了  回復(fù)  更多評(píng)論   

    導(dǎo)航

    常用鏈接

    留言簿(44)

    新聞檔案

    2.動(dòng)態(tài)語(yǔ)言

    3.工具箱

    9.文檔教程

    友情鏈接

    搜索

    最新評(píng)論

    主站蜘蛛池模板: a级毛片黄免费a级毛片| 亚洲国产精品嫩草影院| 两个人日本WWW免费版| 国产一级淫片视频免费看| 亚洲精品宾馆在线精品酒店 | 免费精品久久久久久中文字幕| 成年人性生活免费视频| 精品国产日韩久久亚洲| 女人张腿给男人桶视频免费版| 久久亚洲精品专区蓝色区| 中文亚洲AV片不卡在线观看| 色吊丝性永久免费看码| 亚洲精品无码成人片在线观看| 成人免费观看男女羞羞视频| 中国亚洲女人69内射少妇| 国产免费爽爽视频在线观看| 亚洲成年轻人电影网站www| 99精品一区二区免费视频| 亚洲婷婷第一狠人综合精品| 在线观看免费a∨网站| 日本永久免费a∨在线视频| 国产亚洲av片在线观看播放| 91老湿机福利免费体验| 亚洲情侣偷拍精品| 中文在线免费视频| 亚洲毛片一级带毛片基地| 全免费A级毛片免费看网站| 一级中文字幕乱码免费| 妞干网免费观看视频| 美女视频黄频a免费观看| 国产AⅤ无码专区亚洲AV| 精品熟女少妇av免费久久| 亚洲欧美中文日韩视频| 不卡精品国产_亚洲人成在线| 性xxxxx大片免费视频| 亚洲自偷自偷在线成人网站传媒 | 亚洲欧好州第一的日产suv| 亚洲AⅤ永久无码精品AA| 亚洲欧洲免费视频| 亚洲av日韩综合一区二区三区 | 免费观看AV片在线播放|