Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Ação realiza a troca do adotante ao invés da adoção

Outra coisa que precisei fazer foi colocar o array de pets na entidade Adotante como eager

@OneToMany(()=>PetEntity,(pet)=>pet.adotante,{eager:true})

Sem isso, ao tentar fazer um adotante adotar outro bicho estava fazendo a troca. Haveria outra abordagem sem utilizar eager ou tá correto assim?

2 respostas
solução!

Oii Leonardo, tudo bem?

Legal o que você implementou, muito obrigada por compartilhar com a gente!

Utilizar eager pode, de fato, resolver o problema de carregamento automático dos pets ao buscar um adotante, mas pode não ser a abordagem mais eficiente dependendo do contexto e do tamanho dos dados.

Uma alternativa ao eager é utilizar lazy loading, que carrega os dados sob demanda. Pra isso, você pode configurar a relação como lazy e usar um método para carregar os pets quando necessário.

@OneToMany(() => PetEntity, (pet) => pet.adotante, { lazy: true })
pets: Promise<PetEntity[]>;

Com essa configuração, os pets não serão carregados automaticamente ao buscar um adotante. Quando você precisar acessar os pets, pode fazer algo assim:

const adotante = await adotanteRepository.findOne(adotanteId);
const pets = await adotante.pets;

Essas abordagens podem te ajudar a evitar o carregamento desnecessário de dados e melhorar a performance da sua aplicação.

Um abraço e bons estudos.

Oi, Lorena. Obrigado.

Vou atualizar o projeto com essa solução :)