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

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

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

    隨筆-61  評論-159  文章-0  trackbacks-0

    在hibernate中,component是某個實體的邏輯組成部分,它與實體的根本區別是沒有oid,
    component可以成為是值對象(DDD)

    采用component映射的好處:它實現了對象模型的細粒度劃分,層次會更分明,復用率會更高。

    例子:一個用戶類,包含比較多的用戶信息,姓名、地址、電子郵件、郵編、電話等等,因此這樣如果只集中一個POJO類的話,就造成對象模型的力度比較粗,因此有必要重新劃分對象粒度,提供程序運行效率。

    因此把User劃分為User和Contact兩個類

    1、User的POJO類

    public class User {
     private int id;
     private String name;
     private Contact contact;

    //省略setter、getter方法
    }
    2、從User中劃分出來的Contact類

    public class Contact {
     private String email;
     private String address;
     private String zipCode;
     private String contactTel;

    //省略setter、getter方法
    }
    3、User的映射文件User.hbm.xml

     1<?xml version="1.0"?>
     2<!DOCTYPE hibernate-mapping PUBLIC 
     3    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5<hibernate-mapping package="org.apple.hibernate">
     6    <class name="User" table="t_user">
     7        <id name="id">
     8            <generator class="native"/>
     9        </id>
    10         <property name="name"/>
    11         <component name="contact">
    12             <property name="email"/>
    13             <property name="address"/>
    14             <property name="zipCode"/>
    15             <property name="contactTel"/>
    16         </component>
    17    </class>
    18</hibernate-mapping>

    4、數據庫表結構:

    mysql> desc t_user;
    +------------+--------------+------+-----+---------+----------------+
    | Field      | Type         | Null | Key | Default | Extra          |
    +------------+--------------+------+-----+---------+----------------+
    | id              | int(11)           | NO    | PRI | NULL   | auto_increment |
    | name         | varchar(255) | YES  |        | NULL    |                         |
    | email         | varchar(255) | YES  |        | NULL    |                         |
    | address     | varchar(255) | YES  |        | NULL    |                         |
    | zipCode    | varchar(255) | YES  |        | NULL    |                         |
    | contactTel | varchar(255) | YES  |        | NULL    |                         |
    +------------+--------------+------+-----+---------+----------------+
    6 rows in set (0.02 sec)

    5、測試方法:
     1public void testSave1()
     2    {
     3        Session session = null;
     4        try {
     5            session = HibernateUtil.getSession();
     6            session.beginTransaction();
     7            User u = new User();
     8            u.setName("張三");
     9            Contact contact = new Contact();
    10            contact.setAddress("********");
    11            contact.setEmail("*****@163.com");
    12            contact.setZipCode("000000000");
    13            contact.setContactTel("1234567890");
    14            u.setContact(contact);
    15            session.save(u);
    16            session.beginTransaction().commit();
    17        }
     catch (Exception e) {
    18            e.printStackTrace();
    19            session.beginTransaction().rollback();
    20        }
    finally{
    21            session.close();
    22        }

    23        
    24    }

    PS、由于Contact沒有映射文件,在User中使用了Component映射標簽,加入Contact里面的屬性,所以在測試方法里面不用調用session.save(contact);,只調用第15行中的u.setContact(contact);即可。

    -------------------------------------------------------------------------------------------------
    PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創。如果需要轉載,務必注明作者文章的詳細出處地址,否則不允許轉載,多謝合作!
    posted on 2008-10-23 23:19 apple0668 閱讀(694) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 亚洲AV无码乱码精品国产| 亚洲欧洲另类春色校园小说| 国产综合免费精品久久久| 中文字幕亚洲乱码熟女一区二区 | 亚洲AV无码国产丝袜在线观看| 99久久免费精品高清特色大片| 亚洲人成电影网站色| 日韩亚洲变态另类中文| 很黄很黄的网站免费的| 鲁啊鲁在线视频免费播放| 亚洲AV日韩AV永久无码下载| 精品久久久久久久免费加勒比| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 日本亚洲欧洲免费天堂午夜看片女人员 | 最近免费中文字幕高清大全| 亚洲av成本人无码网站| 久久久久亚洲av无码专区蜜芽| 免费高清在线爱做视频| 无码成A毛片免费| 香港特级三A毛片免费观看| 亚洲网址在线观看你懂的| 国产伦精品一区二区三区免费迷| 污污网站18禁在线永久免费观看| 黄色一级毛片免费| 久久精品国产亚洲AV蜜臀色欲| 亚洲精品美女久久久久99| 在线天堂免费观看.WWW| 男的把j放进女人下面视频免费| 国产亚洲欧美日韩亚洲中文色| 亚洲性天天干天天摸| 国产精品亚洲mnbav网站| 最近中文字幕无吗高清免费视频| 中文字幕无码日韩专区免费| 激情小说亚洲色图| 国产成人精品日本亚洲18图| 亚洲国产精品嫩草影院在线观看| 亚洲高清免费视频| 国产99视频免费精品是看6| 真人做A免费观看| 精品免费人成视频app| 最近国语视频在线观看免费播放|