Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.5K
Visualizações
TypeORM: Guardar entidad con relación ManyToMany con campo personalizado no se guarda correctamente

Tengo una relación ManyToMany de usuarios y proyectos de la siguiente manera:

 // project.entity.ts @Entity() export class Project extends BaseEntity { @PrimaryGeneratedColumn() id: number; @Column() name: string; @OneToMany(type => ProjectUser, projectUser => projectUser.project) projectUsers: ProjectUser[]; @CreateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', readonly: true }) createdAt: Date; @UpdateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' }) updatedAt: Date; @DeleteDateColumn({ type: 'timestamp' }) deletedAt: Date; }
 // user.entity.ts @Entity() export class User extends BaseEntity { @PrimaryGeneratedColumn() id: number; @Column() email: string; @Column() password: string; @OneToMany(type => ProjectUser, projectUser => projectUser.user) projectUsers: ProjectUser; @CreateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', readonly: true }) createdAt: Date; @UpdateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' }) updatedAt: Date; @DeleteDateColumn({ type: 'timestamp' }) deletedAt: Date; }
 // project_user.entity.ts @Entity() export class ProjectUser extends BaseEntity{ @PrimaryGeneratedColumn() id: number; @Column() projectId: number; @Column() userId: number; @Column() isUserCreator: boolean; @ManyToOne(type => Project, project => project.projectUsers) @JoinColumn() project: Project; @ManyToOne(type => User, user => user.projectUsers) @JoinColumn() user: User; }

Cuando trato de guardar un nuevo proyecto, el nuevo registro ProjectUser no se guarda.

 // project.service.ts async create(project: DeepPartial<Project>): Promise<Project> { ---> project { name: 'project1', projectUsers: [{userId: 1, isUserCreator: true}] const projectToSave = Project.create(project) projectToSave.projectUsers = ProjectUser.create(project.projectUsers) return await projectToSave.save(); }

¿Alguna idea de por qué no puedo guardar el registro en la tabla relacionada?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Solo creó instancias projectUsers pero no las guardó.

Use el siguiente código para guardar todo el project y projectUsers :

 const projectToSave = Project.create(project); await projectToSave.save(); const projectUsers = ProjectUser.create(project.projectUsers); projectUsers.forEach(p => p.project = projectToSave); await projectUsers.save(projectUsers); return projectToSave;

O

 const projectUsers = await ProjectUser.save(ProjectUser.create(project.projectUsers)); const projectToSave = Project.create(project); projectToSave.projectUsers = projectUsers; return await projectToSave.save();

Otra solución Puede configurar la opción de cascade en su entidad para guardar automáticamente.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda