首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sequelize不保存包含的对象

Sequelize不保存包含的对象
EN

Stack Overflow用户
提问于 2018-04-20 14:23:08
回答 1查看 52关注 0票数 0

如果我做了这个单元测试,

代码语言:javascript
复制
  test('it saves included instances', async() => {
    /* Get "water" composition */
    const compositions = await _compositions.findAll(
        {include: [{model: _elements, where: {name: 'water'}}, _atoms]});

    /**
     * compositions[0] -> Hydrogren
     * compositions[1] -> Oxygen
     */
    let hydrogen = compositions[0].get('atom');
    /* rename "Hydrogen" to "My super Hydrogen" */
    hydrogen.name = 'My super Hydrogen';

    /* save the composition */
    compositions[0].save();

    /* Get a fresh Hydrogen Instance from the database */
    hydrogen = await _atoms.find({where: {symbol: 'H'}});
    expect(hydrogen.name)
        .to.equal('My super Hydrogen', 'wrong, the value is still Hydrogen');
  });

我希望该值等于以前从相关对象中保存的值。

属性atomcomposition的外键:

代码语言:javascript
复制
compositionModel.belongsTo(await getAtomModel(), {foreignKey: 'atom_id'});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-20 23:26:01

当您更新一个对象时,您应该对实例本身调用.update

代码语言:javascript
复制
test('it saves included instances', async() => {
  const compositions = await _compositions.findAll(
      {include: [{model: _elements, where: {name: 'water'}}, _atoms]});
  let hydrogen = compositions[0].get('atom');

  let newName = 'My super Hydrogen';
  compositions[0].update({
      name: newName
  });

  /* Get a fresh Hydrogen Instance from the database */
  hydrogen = await _atoms.find({where: {symbol: 'H'}});
  expect(hydrogen.name)
      .to.equal(newName);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49943896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档