Saltar al contenido

Opción de cascada TypeORM: cascada, onDelete, onUpdate

Solución:

Esta es mi conclusión de investigarlo:

los cascade opción no afectan las restricciones de la columna de la base de datos, y creo que TypeORM solo lo usa para evaluar cómo guardar las relaciones entre entidades en la base de datos. Podemos definir entidades como esta:

@Entity()
class Book extends BaseEntity {
    @ManyToOne(() => Author, (author) => author.books, {
        onDelete: 'CASCADE',
    })
    public author?: Author
}

@Entity()
class Author extends BaseEntity {
    @OneToMany(() => Book, (book) => book.author, {
        cascade: true,
    })
    public books: Book[];
}

onDelete establece el authorId clave externa a CASCADE en Eliminar en Book. Esto significa que cuando se elimina el autor, también se elimina el libro.

Configuración cascade: true sobre Author le dice a TypeORM que si se agrega un libro nuevo a un autor y el autor se guarda, el libro nuevo también debe guardarse en la base de datos. Como esto:

const author = await Author.findOne({ id: '123' });
author.books.push(new Book(...));
await author.save();

Si la cascada no está activada Book, el nuevo libro no se guardará en la base de datos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *