<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之旅 廣告
                > 默認情況下GORM因為性能問題,不會自動加載關聯屬性的值,gorm通過Preload函數支持預加載(Eager loading)關聯數據,下面介紹預加載關聯數據的方法。 [TOC] ## 預加載例子 ~~~ // 用戶表 type User struct { gorm.Model Username string Orders []Orders // 關聯訂單,一對多關聯關系 } // 訂單表 type Orders struct { gorm.Model UserID uint // 外鍵字段 Price float64 } // 預加載Orders字段值,Orders字段是User的關聯字段 db.Preload("Orders").Find(&users) // 下面是自動生成的SQL,自動完成關聯查詢 //// SELECT * FROM users; //// SELECT * FROM orders WHERE user_id IN (1,2,3,4); // Preload第2,3個參數支持設置SQL語句條件和綁定參數 db.Preload("Orders", "state NOT IN (?)", "cancelled").Find(&users) // 自動生成的SQL如下 //// SELECT * FROM users; //// SELECT * FROM orders WHERE user_id IN (1,2,3,4) AND state NOT IN ('cancelled'); // 通過組合Where函數一起設置SQL條件 db.Where("state = ?", "active").Preload("Orders", "state NOT IN (?)", "cancelled").Find(&users) // 自動生成的SQL如下 //// SELECT * FROM users WHERE state = 'active'; //// SELECT * FROM orders WHERE user_id IN (1,2) AND state NOT IN ('cancelled'); // 預加載Orders、Profile、Role多個關聯屬性 // ps: 預加載字段,必須是User的屬性 db.Preload("Orders").Preload("Profile").Preload("Role").Find(&users) //// SELECT * FROM users; //// SELECT * FROM orders WHERE user_id IN (1,2,3,4); // has many //// SELECT * FROM profiles WHERE user_id IN (1,2,3,4); // has one //// SELECT * FROM roles WHERE id IN (4,5,6); // belongs to ~~~ ## 自動預加載 ~~~ type User struct { gorm.Model Name string CompanyID uint Company Company `gorm:"PRELOAD:false"` // 通過標簽屬性關閉預加載 Role Role // 默認開啟預加載特性 } // 通過Set設置gorm:auto_preload屬性,開啟自動預加載,查詢的時候才會自動完成關聯查詢 db.Set("gorm:auto_preload", true).Find(&users) ~~~ ## 嵌套預加載 ~~~ // 預加載User.Orders.OrderItems屬性值,使用點連接嵌套屬性即可 db.Preload("Orders.OrderItems").Find(&users) db.Preload("Orders", "state = ?", "paid").Preload("Orders.OrderItems").Find(&users) ~~~
                  <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>

                              哎呀哎呀视频在线观看