Retornando associação com Sequelize
Olá a todos! Venho através desta postagem, solicitar a ajuda de alguém que conheça o Sequelize, e que possa me ajudar com a seguinte dúvida. Baseado no código a seguir:
import { Sequelize, Model, DataTypes } from 'sequelize';
import { config } from '../config/config';
const sequelize = new Sequelize(config);
export class Vehicle extends Model {
public model!: string;
public plate!: string;
public owner!: string;
}
Vehicle.init({
model: DataTypes.STRING(32),
plate: DataTypes.STRING(16),
owner: DataTypes.INTEGER // id do dono
}, { sequelize });
export class User extends Model {
public name!: string;
public email!: string;
}
User.init({
name: DataTypes.STRING(32),
email: DataTypes.STRING
}, { sequelize });
Vehicle.belongsTo(User, {
foreignKey: 'vehicles',
targetKey: 'id',
as: 'user'
});
User.hasMany(Vehicle, {
foreignKey: 'owner',
sourceKey: 'id',
onUpdate: 'cascade',
onDelete: 'set null'
});
Ao efetuar uma consulta geral com o código:
User.findAll({
raw: true,
nest: true,
include: [Vehicle]
}).then((data) => {
console.log(data);
});
Eu esperava receber algo semelhante com isso:
[{
id: 1,
name: 'Brendon',
email: 'mail@mail.com',
vehicles: [{ // 2 veículos encontrados para o usuário 1
id: 1,
model: 'GOL',
plate: 'ABC 1234'
},{
id: 2,
model: 'SAVEIRO',
plate: 'QWE 7890'
}]
},{
id: 2,
name: 'Ricardo',
email: 'mail@mail.com',
vehicles: [] // nenhum veículo encontrado para o usuário 2
}]
Porém, o que estou recebendo no meu console é o seguinte:
[{
id: 1,
name: 'Brendon',
email: 'mail@mail.com',
'Vehicles.id': 1,
'Vehicles.model': 'GOL',
'Vehicles.plate': 'ABC 1234'
},{
id: 1,
name: 'Brendon',
email: 'mail@mail.com',
'Vehicles.id': 2,
'Vehicles.model': 'SAVEIRO',
'Vehicles.plate': 'QWE 7890'
},{
id: 2,
name: 'Ricardo',
email: 'mail@mail.com',
'Vehicles.id': null,
'Vehicles.model': null,
'Vehicles.plate': null
}]
Discussão (0)
Carregando comentários...