<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 1.3.2\. 單向Set-based的關聯 我們將向`Person`類增加一連串的events。那樣,通過調用`aPerson.getEvents()`,就可以輕松地導航到特定person所參與的events,而不用去執行一個顯式的查詢。我們使用Java的集合類(collection):`Set`,因為set 不包含重復的元素及與我們無關的排序。 我們需要用set 實現一個單向多值關聯。讓我們在Java類里為這個關聯編碼,接著映射它: ``` public class Person { private Set events = new HashSet(); public Set getEvents() { return events; } public void setEvents(Set events) { this.events = events; } } ``` 在映射這個關聯之前,先考慮一下此關聯的另外一端。很顯然,我們可以保持這個關聯是單向的。或者,我們可以在`Event`里創建另外一個集合,如果希望能夠雙向地導航,如:`anEvent.getParticipants()`。從功能的角度來說,這并不是必須的。因為你總可以顯式地執行一個查詢,以獲得某個特定event的所有參與者。這是個在設計時需要做出的選擇,完全由你來決定,但此討論中關于關聯的階數是清楚的:即兩端都是“多”值的,我們把它叫做_多對多(many-to-many)_關聯。因而,我們使用Hibernate的多對多映射: ``` <class name="events.Person" table="PERSON"> <id name="id" column="PERSON_ID"> <generator class="native"/> </id> <property name="age"/> <property name="firstname"/> <property name="lastname"/> <set name="events" table="PERSON_EVENT"> <key column="PERSON_ID"/> <many-to-many column="EVENT_ID" class="events.Event"/> </set> </class> ``` Hibernate支持各種各樣的集合映射,`&lt;set&gt;`使用的最為普遍。對于多對多關聯(或叫_n:m_實體關系), 需要一個關聯表(association table)。`表`里面的每一行代表從person到event的一個關聯。表名是由`set`元素的`table`屬性配置的。關聯里面的標識符字段名,對于person的一端,是由`&lt;key&gt;`元素定義,而event一端的字段名是由`&lt;many-to-many&gt;`元素的`column`屬性定義。你也必須告訴Hibernate集合中對象的類(也就是位于這個集合所代表的關聯另外一端的類)。 因而這個映射的數據庫schema是: ``` _____________ __________________ | | | | _____________ | EVENTS | | PERSON_EVENT | | | |_____________| |__________________| | PERSON | | | | | |_____________| | *EVENT_ID | <--> | *EVENT_ID | | | | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | | TITLE | |__________________| | AGE | |_____________| | FIRSTNAME | | LASTNAME | |_____________| ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看