我想找到一个对象的父表信息。
我有User hasMany Book Book具有编写器并分配给用户ID。 书有类型,就像幻想,浪漫,历史,科幻小说等等。
所以我想找出科幻小说类型的书,但不仅仅是为了那个,我还想要作家,即用户。
我怎样才能找到这本书的作者在哪里只为书籍提供条件?似乎包括'在Book.findAll(包括:用户)中不起作用;这告诉我,include仅用于查找子表而不是父表。
以下是用户
的一些代码const User = sequelize.define('User', {
id: { type: DataTypes.STRING(6), field: 'ID', primaryKey : true }
}
associate: function(models) {
User.hasMany(models.Book, { foreignKey: 'userId' });
}
并预订
const Book = sequelize.define('Book', {
id: { type: DataTypes.STRING(6), field: 'ID', primaryKey: true }, // primary key
userId: { type: DataTypes.STRING(6), field: 'USER_ID', primaryKey: true }
type: { type: DataTypes.STRING(20), field: 'TYPE'
}
本书有更多的子表,我试图在包含中找到这些附加信息,所以我想我真的需要从Book.findAll(...)中找到 而不是User.findAll(包括:Book)。
有人可以帮忙吗?
答案 0 :(得分:0)
我认为我犯了一个错误。
我一改变了
userId: { type: DataTypes.STRING(6), field: 'USER_ID', primaryKey: true }
到
userId: { type: DataTypes.STRING(6), field: 'USER_ID' }
include正在为belongsTo工作;它从孩子那里找到了父母。 如果在模型中声明了多个主键,那么Sequelize似乎对关系有一些问题......
如果有人认为这可以解决您的问题,请分享回复,以便我对此更加肯定。
感谢。