我有 3 個相互依賴的物體,我在使用一個請求從它們查詢資料時遇到問題。
第一個用戶:
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
firstName: string;
@Column()
lastName: string;
@Column()
login: string;
@Column()
password: string;
@Column()
ownerId: number;
@OneToOne(() => Role, (role) => role.user)
@JoinColumn()
role?: Role;
}
第二個作用:
@Entity()
export class Role extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
description: string;
@ManyToOne(() => User, (user) => user.role)
@JoinColumn()
user: User | null;
@ManyToMany(() => Permission, { cascade: true })
@JoinTable({ name: 'roles_has_permissions' })
permissions: Permission[];
}
第三個權限:
@Entity()
export class Permission {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: PossiblePermissions;
}
如何從資料庫中選擇資料。我在 Postgresql 中使用 typeorm,我想得到這樣的陣列。
[{
…user info by ownerId
role: {
…role which related this user
permissions: [{
…permissions which related this role
}, …]
}
}, …]
uj5u.com熱心網友回復:
使用查詢構建器https://typeorm.io/#/select-query-builder
在你的情況下,它應該是這樣的:
await connection
.getRepository(User)
.createQueryBuilder("user")
.leftJoinAndSelect("user.role", "role")
.leftJoinAndSelect("role.permissions", "permissions")
.getMany()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/337118.html
標籤:PostgreSQL 嵌套 打字机
