如何防止Sequelize添加“Id”列名?

我发现当我用Sequelize进行查询时,“Id”被添加到列名的末尾,但我不知道如何指示Sequelize不这样做?

我已经为Sequelize创build了一个实体数据模型,如下所示:

function initializeDataModel(sequelize) { var dataModel = { }; dataModel.Playlist = this.sequelize.define('playlist', { name: Sequelize.STRING, }); dataModel.PlaylistEntry = this.sequelize.define('playlist_entry', { playlist: { name: 'playlist', type: Sequelize.INTEGER, references: { // This is a reference to another model model: dataModel.Playlist, // This is the column name of the referenced model key: 'id' // This declares when to check the foreign key constraint. PostgreSQL only. //deferrable: Sequelize.Deferrable.INITIALLY_IMMEDIATE } }, track: Sequelize.INTEGER }); dataModel.PlaylistEntry.belongsTo( dataModel.Playlist, { as: 'Playlist', foreignKey: { name: 'playlist' }}); dataModel.Playlist.hasMany(dataModel.PlaylistEntry); return dataModel; } 

“playlist_entry”表(在MariaDB中)中的字段如下所示:

  • id:INT(11)
  • 播放列表:INT(11)
  • 跟踪:INT(11)

我正在执行的查询如下所示:

  eagerIncludes.push(this.dataModel.PlaylistEntry); this.dataModel.Playlist.find({ where: { id: playlistId }, limit: limit, offset: offset, include: eagerIncludes }).then(function (results) { callback(results, options, undefined); }).catch(function (error) { callback(undefined, options, error); }); 

这导致:

 ER_BAD_FIELD_ERROR: Unknown column 'playlist_entries.playlistId' in 'field list' 

任何build议,将不胜感激。 更改数据库中的列名不是一个选项。

请注意,尝试使用“ 渴望包含 ”时,这是一个问题。

基于一些实验,修复方法是将“foreignKey”属性添加到hasMany定义中:

 entities.Playlist.hasMany(entities.PlaylistEntry, { foreignKey: 'playlist' });