rocketseat-education / bootcamp-gostack-desafios

Repositório contendo todos os desafios dos módulos do Bootcamp Gostack
https://pages.rocketseat.com.br/gostack
MIT License
1.18k stars 999 forks source link

Desafio 07: GoFinances Web - Many-to-one / one-to-many relations #64

Open ThyagoMC opened 4 years ago

ThyagoMC commented 4 years ago

No trecho do README.md que fala sobre o eager loading tem a seguinte descrição:

Para isso, você pode utilizar a funcionalidade de eager loading do TypeORM, adicionando o seguinte na sua model de transactions:

 @ManyToOne(() => Category, category => category.transaction, { eager: true })
 @JoinColumn({ name: 'category_id' })
 category: Category;

Lembre também de fazer o mesmo na model de Category, mas referenciando a tabela de Transaction.

@OneToMany(() => Transaction, transaction => transaction.category)
transaction: Transaction;

Acredito que a ideia do trecho era apenas fazer uso do eager loading, nesse caso só precisaria usar o @ManyToOne, sem o @OneToMany.

Nesse cenário o código ficaria assim: @ManyToOne(() => Category, { eager: true }) ...

E o model Category não teria o trecho @OneToMany.

Agora caso ainda queira usar o @OneToMany ai teria que alterar o trecho do Category para receber um array de Transaction e não apenas uma transação e o restante do código permaneceria o mesmo informado.

Mais detalhes nesse link: https://orkhan.gitbook.io/typeorm/docs/many-to-one-one-to-many-relations