- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 NodeJS 和 SequelizeJS 比较陌生,并且我正在构建的查询面临 hasOne
问题,我想知道您对此问题的看法,以找出我出错的地方以及实现此查询的正确方法。
Association Here
使用 sequelize-auto (pg-hstore) 生成的模型。
Bloco 模型:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('bloco_condominio', {
id_bloco: {
type: DataTypes.INTEGER,
allowNull: false,
autoIncrement: true,
primaryKey: true
},
id_condominio: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: 'condominio',
key: 'id_condominio'
}
},
nm_bloco: {
type: DataTypes.STRING,
allowNull: true
},
ic_status: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: "A"
}
}, {
tableName: 'bloco_condominio'
});
};
module.exports = function(sequelize, DataTypes) {
return sequelize.define('apartamento', {
id_apartamento: {
type: DataTypes.INTEGER,
allowNull: false,
autoIncrement: true,
primaryKey: true
},
id_condominio: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: 'condominio',
key: 'id_condominio'
}
},
nu_apto: {
type: DataTypes.STRING,
allowNull: true
},
id_bloco: {
type: DataTypes.INTEGER,
allowNull: true,
references: {
model: 'bloco_condominio',
key: 'id_bloco'
}
},
ic_status: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: "A"
},
dt_incl: {
type: DataTypes.TIME,
allowNull: false,
defaultValue: sequelize.fn('now')
},
dt_ult_alt: {
type: DataTypes.TIME,
allowNull: false,
defaultValue: sequelize.fn('now')
}
}, {
tableName: 'apartamento'
});
};
"use strict";
var model = require('../models');
var Utils = require('../utils/utils');
var service = {};
var Apartamento = model.apartamento;
var Bloco = model.bloco_condominio;
var Morador = model.morador;
var Pessoa = model.pessoa;
//Incluir relação OneToMany
Apartamento.hasMany(Morador, { as: "Moradores", foreignKey: 'id_apartamento' });
Morador.belongsTo(Apartamento, { foreignKey: 'id_apartamento' });
Morador.hasMany(Pessoa, { as: "Pessoa", foreignKey: 'id_pessoa' });
Pessoa.belongsTo(Morador, { foreignKey: 'id_pessoa' });
Bloco.hasMany(Apartamento, { as: "Bloco", foreignKey: 'id_bloco' });
Apartamento.hasMany(Bloco, { foreignKey: 'id_bloco' });
service.getApartamentoById = function(idApartamento) {
return Apartamento.findById(idApartamento, {
include: [
{ model: Morador, as: 'Moradores', include: [
{ model: Pessoa, as: 'Pessoa'}
]},
{ model: Bloco, as: 'Bloco' }
]
})
.then(function(data) {
return data;
})
.catch(function(err) {
throw 'Erro ao consultar apartamento por ID: ' + err.message + ' - Request: '+JSON.stringify(idApartamento);
});
};
最佳答案
为了让我更简单(只懂英语),我从谷歌翻译中获取了以下内容:
Pessoa: Person
Morador: Dweller
Bloco: Block
Apartmento: Apartment
Bloco.hasMany(Apartamento, { as: "Apartmento", foreignKey: 'id_bloco' });
Apartamento.belongsTo(Bloco, { foreignKey: 'id_bloco' });
Note: I've changed the
as: "Bloco"
toas: "Apartmento"
and the secondhasMany
tobelongsTo
. This might be where your issues were coming from.
bloco.getApartmento(options)
Bloco.create()
.then(block => {
return Promise.all([
block,
Apartamento.bulkCreate([{
id_bloco: block.id_bloco
}, {
id_bloco: block.id_bloco
}, {
id_bloco: block.id_bloco
}, {
id_bloco: block.id_bloco
}, {}])
])
})
.spread((bloco, apartment) => {
return bloco.getApartamento()
})
.then(apartments => {
console.log(apartments.length); --> Logs 4 which matches the bulk create.
})
through
选项。
Bloco.belongsToMany(Apartamento, {
as: "Apartmentos",
foreignKey: 'id_bloco',
through: "BlocoAparmento"
});
Apartamento.belongsToMany(Bloco, {
as: "Blocos",
foreignKey: 'id_apartmento',
through: "BlocoAparmento"
});
Bloco.getApartmentos(
方法以及相反的(
Apartmento.getBlocos(
)以及
setAssociation
、
addAssoc...
等
关于javascript - SequelizeJS HasOne 关联错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44091727/
返回 $this->hasOne('App\Phone', 'foreign_key', 'local_key'); 我需要这两个表中的 hasone 关系。 在这两个表中,关系应该在父表和子表中的用
在登录模型中,我具有与图片表的实现关系 function picture () { return $this->hasOne('App\Picture'); } 现在我想要Picture.pic
这两种 hasOne 语法有什么区别? class Project { ....... ............ static hasOne = Employee // static h
我想对域关联进行反射(reflection),以自动为 RESTful WS(脚手架)生成 JSON/XML 格式的类描述 rune 件。在 HasOne 的情况下(据说是双向的),我试图在 Asso
我正在尝试将 leftJoin 添加到 hasOne 方法中,但它似乎不起作用。来自主表的数据存在,但不来自连接表。代码: public function getUser() {
我有两个模型: a) 食谱b) 用户 每个食谱都有一个用户。当 (REST) 请求食谱时,我还想在我的 JSON 答案中获取相关用户的名称,如下所示: { "id": 1, "user_id"
我是 Grails 的新手。 我可以使用“hasOne”或“hasMany”而不使用“belongsTo”到另一个域类吗? 提前致谢。 最佳答案 是的你可以。请参阅 Grails 文档中的示例:htt
要在 Grails 中创建一对一关系,我可以执行以下操作: class Person { static hasOne = [address: Address] } 在这种情况下,地址表具有其人
我对 NodeJS 和 SequelizeJS 比较陌生,并且我正在构建的查询面临 hasOne 问题,我想知道您对此问题的看法,以找出我出错的地方以及实现此查询的正确方法。 Association
我的表 下面是将 ad_type_id 作为外键并与 ad_type 关联的分类模板模型 'use strict'; module.exports = (sequelize, DataType
假设我有一个 grails 域类,它看起来像 class Person { Address address } 我也可以将其声明为 class Person { static hasOne
我在设置 hasOne 关系时遇到了一些问题,这可能是因为我错误地理解了该关系? 我有 2 个模型,一个用户模型和一个位置模型。我现在要添加的是用户和位置之间的关系,这意味着用户具有当前位置。但是,如
为什么 Laravel 的 Eloquent 坚持 hasOne 关系中的外键必须位于引用表中,而不是位于父表中? 我要求获得一般性的理解/丰富。 例如,来自 Laravel 文档:如果 User 有
在将现有应用程序从 Grails 2.5 迁移到 3.1 时,我遇到了双向一对一关系的奇怪问题。 想象一个带有 User 和 Employee 的简单模型对象。 A User代表通用用户帐户。并非所有
我有一些模型正在尝试关联。 一种模型是 Item,一种是 Slide,另一种是 Asset。 项目下方有多个幻灯片。 Assets 基本上是已上传的文件(图像、mp3 等),幻灯片是显示 Assets
为什么 Laravel 的 Eloquent 坚持 hasOne 关系中的外键必须位于引用表中,而不是位于父表中? 我要求获得一般性的理解/丰富。 例如,来自 Laravel 文档:如果 User 有
对于 belongsTo关系,我可以用dissociate ,但什么是等效于 hasOne ? 前任。 Phone属于User : $phone->user()->dissociate(); // s
所以我有2个模型,User & Profile,关系设置如下: /** * User belongs to many Profile * * @return \I
我有两个表: users 包含(id, name, email) id为主键。 users_details contains (user_id, address, city, postcode) us
我有 2 个表: "article": |id|name|text| "article_permissions" |article_id|val| 所以,我不想将 article_permis
我是一名优秀的程序员,十分优秀!