iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
自我挑戰組

日常任務成長紀錄系列 第 14

TypeOrm | Repository APIs 用法紀錄 1

https://typeorm.io/#/repository-api

常常在使用,但也只有使用到其中主要的method,剛好遇到 save vs. update 差在哪裡的疑問,就一起記下來

  • hasId( ) 確認Table 是否已經有指定id 紀錄存在
    • ex. repository.hasId(user)
    • 適用新增需要指定ID 的情境
  • getId( ) 回傳紀錄 pk id (如果是複合主鍵,則會回傳傳Object)
    • 適用複合主鍵快速取得
    • ex. repository.getId(user);
  • create( ) 建立一實例,不確定會不會存到db
    • ex. repository.create() = new User()
  • merge( ) 合併多欄位成為一個單一實例
    • ex. repository.merge(user, { firstName: "Timber" }, { lastName: "Saw" })
  • preload() 可以直接覆寫讀取的資料,返回實例,但覆寫的物件必須包含id
    • ex. await repository.preload(partialUser)
  • save() 儲存給予的實例,若DB已存在,更新資料(須包含id),若資料不存在,則建立新的一筆
    • ex. await repository.save(user);
  • remove() 移除給予的實例資料
    • ex. await repository.remove(user)
  • insert() 插入一新實例、陣列實例
    • ex. await repository.insert(User)
  • update() 根據指定條件,更新符合條件之資料
    • ex. await repository.update(1, { firstName: "Rizzrak" })
  • delete() 根據指定條件,刪除符合條件之資料
    • ex. await repository.delete({ firstName: "Timber" });
  • softDelete() & restore () 使用id 軟刪除、恢復資料
    • ex. await repository.softDelete(1)
    • ex. await repository.restore(1)
  • softRemove() & recover() 使用實例 軟刪除、恢復資料
    • await repository.softRemove(entities)
    • await repository.recover(entitiesAfterSoftRemove)

上一篇
管理API 變化之API version
下一篇
TypeOrm | Repository APIs 用法紀錄 2
系列文
日常任務成長紀錄30

尚未有邦友留言

立即登入留言