<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 1.3.6\. 使雙向連起來 首先請記住,Hibernate并不影響通常的Java語義。 在單向關聯的例子中,我們是怎樣在`Person`和`Event`之間創建聯系的?我們把`Event`實例添加到`Person`實例內的event引用集合里。因此很顯然,如果我們要讓這個關聯可以雙向地工作,我們需要在另外一端做同樣的事情 - 把`Person`實例加入`Event`類內的Person引用集合。這“在關聯的兩端設置聯系”是完全必要的而且你都得這么做。 許多開發人員防御式地編程,創建管理關聯的方法來保證正確的設置了關聯的兩端,比如在`Person`里: ``` protected Set getEvents() { return events; } protected void setEvents(Set events) { this.events = events; } public void addToEvent(Event event) { this.getEvents().add(event); event.getParticipants().add(this); } public void removeFromEvent(Event event) { this.getEvents().remove(event); event.getParticipants().remove(this); } ``` 注意現在對于集合的get和set方法的訪問級別是protected - 這允許在位于同一個包(package)中的類以及繼承自這個類的子類可以訪問這些方法,但禁止其他任何人的直接訪問,避免了集合內容的混亂。你應盡可能地在另一端也把集合的訪問級別設成protected。 `inverse`映射屬性究竟表示什么呢?對于你和Java來說,一個雙向關聯僅僅是在兩端簡單地正確設置引用。然而,Hibernate并沒有足夠的信息去正確地執行`INSERT`和`UPDATE`語句(以避免違反數據庫約束),所以它需要一些幫助來正確的處理雙向關聯。把關聯的一端設置為`inverse`將告訴Hibernate忽略關聯的這一端,把這端看成是另外一端的一個_鏡象(mirror)_。這就是所需的全部信息,Hibernate利用這些信息來處理把一個有向導航模型轉移到數據庫schema時的所有問題。你只需要記住這個直觀的規則:所有的雙向關聯需要有一端被設置為`inverse`。在一對多關聯中它必須是代表多(many)的那端。而在多對多(many-to-many)關聯中,你可以任意選取一端,因為兩端之間并沒有差別。 讓我們把進入一個小型的web應用程序。
                  <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>

                              哎呀哎呀视频在线观看