情况
直接Save,并不会触发BeforeInsert
async create(attributes: DeepPartial<T>) {
return this.repository.save(attributes); // 不会触发BeforeInsert
}
解决方法
1.利用plainToClass
async create(attributes: DeepPartial<T>) {
const entity = plainToClass(User, attributes);
return this.repository.save(entity);
}
- 利用new Entiry()
async create(attributes: DeepPartial<T>) {
const entity = Object.assign(new User(), attributes);
return this.repository.save(entity);
}
注意
BeforeInsert的触发条件为1.数据插入前, 2.数据库中无该数据. 如果要数据插入/更新时都触发, 那就再加上BeforeUpdate
@BeforeInsert()
@BeforeUpdate()
beforeInsert() {
console.log(this.department);
this.department = this.leader_in_dept.map(value => value.dept_id) || [];
console.log(this.department);
}