Hibernatede 一對多映射配置,hibernatede映射

來源:互聯網
上載者:User

Hibernatede 一對多映射配置,hibernatede映射

Hibernatede 一對多映射配置

以公司和員工為例:公司是一,員工是多

 

第一步 建立兩個實體類,公司和員工

       寫核心設定檔hibernate.cfg.xml

       寫映射設定檔Company.hbm.xml 和Worker.hbm.xml

 

第二步 讓兩個實體類之間互相表示

(1)在公司實體類裡面表示擁有多個員工,把員工的集合作為屬性,寫入公司的實體類。

//在公司實體類裡面表示擁有多個員工,一個公司有多個員工

       //hibernate要求使用集合表示多的資料,使用set集合

private Set<Worker> workers=new HashSet<Worker>();

 

     public Set<Worker> getWorkers() {

        return workers;

     }

    public void setWorkers(Set<Worker> workers) {

        this.workers = workers;

     } 

 

(2)在員工實體類裡面表示所屬公司

- 一個員工只能屬於一個公司

// 在員工實體類裡面表示所屬公司,一個員工只能屬於一個公司,把公司類作為員工的一個屬性,寫入員工類。

private Company company;

 

    public Company getCompany() {

        return company;

       }

 

    public void setCompany(Company company) {

        this.company = company;

       }

 

第三步 配置映射關係

(1)一個實體類對應一個對應檔

(2)把映射最基本的配置完成

 

(3)在對應檔中,配置一對多關聯性

- 在公司對應檔中,配置所有的員工

1  set標籤(class標籤的子標籤)表示員工的集合

    name屬性: 屬性值寫的是公司實體類裡面表示員工的set集合名稱

2  key標籤(set標籤的子標籤) 

column屬性值:外鍵名稱

3  one-to-many標籤(set標籤的子標籤):

class屬性:裡面寫多的一方的實體類全路徑(即員工類)

代碼:

<set name="workers">

         <key column="c_w_id"/>

<one-to-many class="entity.Worker"/>

</set>

 

- 在員工對應檔中,配置其所屬公司

使用many-to-one標籤(class標籤的子標籤),表示員工所屬公司

              1     name屬性:因為在員工實體類使用company對象表示,寫company名稱

              2     class屬性:Company全路徑

              3     column屬性:外鍵名稱(要和公司對應檔中的外鍵名稱保持一致)

代碼:         

<many-to-one 

name="company" class="entity.Company" column="c_w_id">

</many-to-one>

 

第四步 建立核心設定檔,把對應檔引入到核心設定檔中

<!-- 第三部分: 把對應檔放到核心設定檔中 必須的-->

 <mapping resource=" entity/Company.hbm.xml"/>

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.