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)