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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 5.1.5\. composite-id ``` <composite-id name="propertyName" class="ClassName" mapped="true|false" access="field|property|ClassName" node="element-name|." > <key-property name="propertyName" type="typename" column="column_name"/> <key-many-to-one name="propertyName class="ClassName" column="column_name"/> ...... </composite-id> ``` 如果表使用聯合主鍵,你可以映射類的多個屬性為標識符屬性。 `&lt;composite-id&gt;`元素接受`&lt;key-property&gt;` 屬性映射和`&lt;key-many-to-one&gt;`屬性映射作為子元素。 ``` <composite-id> <key-property name="medicareNumber"/> <key-property name="dependent"/> </composite-id> ``` 你的持久化類_必須_重載`equals()`和 `hashCode()`方法,來實現組合的標識符的相等判斷。 實現`Serializable`接口也是必須的。 不幸的是,這種組合關鍵字的方法意味著一個持久化類是它自己的標識。除了對象自己之外, 沒有什么方便的“把手”可用。你必須初始化持久化類的實例,填充它的標識符屬性,再`load()` 組合關鍵字關聯的持久狀態。我們把這種方法稱為_embedded(嵌入式)_的組合標識符,在重要的應用中不鼓勵使用這種用法。 第二種方法我們稱為_mapped(映射式)_組合標識符 (mapped composite identifier),`&lt;composite-id&gt;`元素中列出的標識屬性不但在持久化類出現,還形成一個獨立的標識符類。 ``` <composite-id class="MedicareId" mapped="true"> <key-property name="medicareNumber"/> <key-property name="dependent"/> </composite-id> ``` 在這個例子中,組合標識符類`MedicareId`和實體類都含有`medicareNumber`和`dependent`屬性。標識符類必須重載`equals()`和`hashCode()`并且實現`Serializable`接口。這種方法的缺點是出現了明顯的代碼重復。 下面列出的屬性是用來指定一個映射式組合標識符的: * `mapped` (可選, 默認為`false`): 指明使用一個映射式組合標識符,其包含的屬性映射同時在實體類和組合標識符類中出現。 * `class` (可選,但對映射式組合標識符必須指定): 作為組合標識符類使用的類名. 在[第 8.4 節 “組件作為聯合標識符(Components as composite identifiers)”](../Text/pr01_split_000.html "8.4\. 組件作為聯合標識符(Components as composite identifiers)")一節中,我們會描述第三種方式,那就是把組合標識符實現為一個組件(component)類,這是更方便的方法。下面的屬性僅對第三種方法有效: * `name` (可選,但對這種方法而言必須): 包含此組件標識符的組件類型的名字 (參閱第9章). * `access` (可選 - 默認為`property`): Hibernate應該使用的訪問此屬性值的策略 * `class` (可選 - 默認會用反射來自動判定屬性類型 ): 用來作為組合標識符的組件類的類名(參閱下一節) 第三種方式,被稱為_identifier component(標識符組件)_是我們對幾乎所有應用都推薦使用的方式。
                  <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>

                              哎呀哎呀视频在线观看