Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 多对多关系自定义表字段_Mysql_Node.js_Typescript_Typeorm - Fatal编程技术网

Mysql 多对多关系自定义表字段

Mysql 多对多关系自定义表字段,mysql,node.js,typescript,typeorm,Mysql,Node.js,Typescript,Typeorm,我正在一个已经存在的数据库上使用typeorm。 我有三张桌子 +-------------+--------------+----------------------------+ | ROLE | +-------------+--------------+----------------------------+ | r_id | int(11) | PRIMARY

我正在一个已经存在的数据库上使用typeorm。 我有三张桌子

+-------------+--------------+----------------------------+
|                        ROLE                             |
+-------------+--------------+----------------------------+
| r_id        | int(11)      | PRIMARY KEY AUTO_INCREMENT |
| r_name      | varchar(50)  |                            |
| r_status    | tinyint      |                            |
+-------------+--------------+----------------------------+
+-------------+--------------+----------------------------+
|                        PERMISSION                       |
+-------------+--------------+----------------------------+
| p_id        | int(11)      | PRIMARY KEY AUTO_INCREMENT |
| p_name      | varchar(50) |                            |
+-------------+--------------+----------------------------+
+-------------+--------------+----------------------------+
|                       PERMISSION_ROLE                   |
+-------------+--------------+----------------------------+
| p_id        | int(11)      | PRIMARY KEY FOREIGN KEY    |
| r_id        | int(11)      | PRIMARY KEY FOREIGN KEY    |
+-------------+--------------+----------------------------+
我用打字机写了这些实体 -角色

  • 许可
  • 权限\角色
问题是我无法从关系中检索数据。 如果我尝试这样的方法:

permissionRepository.find({ relations: ["permission_role"] })
@Entity({  name: "ROLE" })
export class Role {
  @PrimaryGeneratedColumn()
  public r_id: Number;
  @Column()
  public r_nome_ruolo: string;
  @Column()
  public r_stato: Boolean;


  @ManyToMany(() => Permission, (permission) => permission.roles)
  @JoinTable({
    name: "PERMISSION_ROLE",
    joinColumn: {
      name: "r_id",
      referencedColumnName: "r_id",
    },
    inverseJoinColumn: {
      name: "p_id",
      referencedColumnName: "p_id",
    },
  })
  permissions: Permission[];
}

我在结果中收到了角色的权限,但具有空数组

提前感谢大家的帮助

解决 我修改了实体角色和权限,如下所示:

permissionRepository.find({ relations: ["permission_role"] })
@Entity({  name: "ROLE" })
export class Role {
  @PrimaryGeneratedColumn()
  public r_id: Number;
  @Column()
  public r_nome_ruolo: string;
  @Column()
  public r_stato: Boolean;


  @ManyToMany(() => Permission, (permission) => permission.roles)
  @JoinTable({
    name: "PERMISSION_ROLE",
    joinColumn: {
      name: "r_id",
      referencedColumnName: "r_id",
    },
    inverseJoinColumn: {
      name: "p_id",
      referencedColumnName: "p_id",
    },
  })
  permissions: Permission[];
}
解决 我修改了实体角色和权限,如下所示:

permissionRepository.find({ relations: ["permission_role"] })
@Entity({  name: "ROLE" })
export class Role {
  @PrimaryGeneratedColumn()
  public r_id: Number;
  @Column()
  public r_nome_ruolo: string;
  @Column()
  public r_stato: Boolean;


  @ManyToMany(() => Permission, (permission) => permission.roles)
  @JoinTable({
    name: "PERMISSION_ROLE",
    joinColumn: {
      name: "r_id",
      referencedColumnName: "r_id",
    },
    inverseJoinColumn: {
      name: "p_id",
      referencedColumnName: "p_id",
    },
  })
  permissions: Permission[];
}
@Entity({ name: "PERRMISSION" })
export class Permission {
  @PrimaryGeneratedColumn()
  public p_id: Number;
  @Column()
  public p_nome_permesso: string;

  @ManyToMany(() => Role, (role) => role.permissions)
  public roles: Role[];
}