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

Problemas com a associação das tabelas

Olá, caríssimos(as)!

Estou com um pequeno probleminha durante a associação das colunas nas minhas tabelas. Isso ocorre quando uso a propriedade belongsTo do Sequelize ORM.

Estava seguindo passo a passo as instruções do curso e fui me adiantando para testar o que havia aprendido. Porém, lá na frente quando implementei todos os métodos da classe Turma e fui testar no Postman, deu o seguinte erro quando uso o método para listar todos:

"Unknown column 'estudante_id' in 'field list'"

Pelo console, verifiquei que o SELECT estava saindo da seguinte forma:

SELECT `id`, `data_inicio`, `createdAt`, `updatedAt`, `nivel_id`, `docente_id`, `estudante_id`, `nivel_id` FROM `Turmas` AS `Turmas`;

E na consulta, aparece justamente as duas colunas que usei com belongsTo para criar a referência, como exemplificado abaixo:

static associate(models) {
      Turmas.hasMany(models.Matriculas, { foreignKey: "turma_id" });
      Turmas.belongsTo(models.Pessoas);
      Turmas.belongsTo(models.Niveis);
    }

No curso, os arquivo do sequelize são funcionais, no meu caso, foram gerados classes, será que isso tem algo haver, ou houve alguma mudança?

Desde já agradeço demais pela ajuda ^^.

2 respostas
solução!

Opa Jonas, tudo bem? Talvez seja porque você não colocou os campos dos modelos associados que se relacionam quando utilizou o método belongsTo. Segue o meu código

class Turmas extends Model {
    static associate(models) {
    //1 para N
      Turmas.hasMany(models.Matriculas, {
        foreignKey: 'turma_id'
      })
    // FK do modelo Pessoas
      Turmas.belongsTo(models.Pessoas, {
        foreignKey: 'docente_id'
      });
    // FK do modelo Niveis
      Turmas.belongsTo(models.Niveis, {
        foreignKey: 'nivel_id'
      });
    }
  };

Abraços,

Foi isso mesmo! Muito obrigado pelo feedback ^^.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software