typescript - 删除一条与nest js有多对多关系的记录,输入ORM
问题描述
我在嵌套上有一个控制器,它有一个删除访问该服务的用户的方法。只有两个实体:用户和角色,具有多对多关系。我需要删除一个用户,但我不明白该怎么做。
users.service.ts:
import { Injectable } from '@nestjs/common'
import { InjectRepository } from '@nestjs/typeorm'
import { User } from './users.model'
import { Repository } from 'typeorm'
import { GetAllUsersDto } from './dto/getAllUsers.dto'
import { RolesService } from '../roles/roles.service'
@Injectable()
export class UsersService {
constructor(
@InjectRepository(User)
private userRepository: Repository<User>,
private rolesService: RolesService,
) {}
async getAll(): Promise<GetAllUsersDto[]> {
const users = await this.userRepository.find()
return users.map(user => new GetAllUsersDto(user))
}
getByLogin(login: string): Promise<User> {
return this.userRepository.findOne({ relations: ['roles'], where: { login } })
}
async create(user: User) {
const role = await this.rolesService.getByName('Администратор')
user.roles = [role]
await this.userRepository.save(user)
return true
}
async delete(login: string) {
const user = await this.getByLogin(login)
await this.userRepository.softDelete(user)
}
}
模型 users.model.ts
import { BaseEntity, Column, Entity, JoinTable, ManyToMany, PrimaryColumn } from 'typeorm'
import { Role } from '../roles/roles.model'
@Entity()
export class User extends BaseEntity {
@PrimaryColumn({
type: 'varchar',
unique: true,
nullable: false
})
login: string
@Column({
type: 'varchar',
nullable: false
})
name: string
@Column({
type: 'varchar',
nullable: false
})
password: string
@ManyToMany(() => Role, role => role.users, {
cascade: true
})
@JoinTable()
roles: Role[]
}
模型角色.models.ts
import { BaseEntity, Column, Entity, ManyToMany, PrimaryGeneratedColumn } from 'typeorm'
import { User } from '../users/users.model'
@Entity()
export class Role extends BaseEntity {
@PrimaryGeneratedColumn({
type: 'int'
})
id: number
@Column({
type: 'varchar',
unique: true,
nullable: false
})
name: string
@ManyToMany(() => User, user => user.roles)
users: User[]
}
据我了解,我需要从联结表中删除一条记录,但我不明白如何访问它。
解决方案
推荐阅读
- python - Discord.py 机器人,根据特定角色执行响应
- javascript - jQuery - 如何替换 keyup 上的输入值?
- c++ - C++:将数学函数及其导数分组到一个实体中
- python - Python Gurobi 设置目标函数
- html - How do I make a part of a div hide itself off screen?
- scala - 从 Redshift 读取到 Spark Dataframe(Spark-Redshift 模块)
- javascript - 我如何组合这些代码?(阅读更多,滚动到顶部阅读更少)
- php - PHP 中的 Password_verfiy 失败
- python - 将标记设置为随 y 轴缩放(有限制)
- vb.net - VB.NET 控制台应用程序等价于 Python Input()