Сохраняйте связанные сущности с отношением один к одному на книжной полке. js - PullRequest
0 голосов
/ 25 марта 2020

Я ищу самый элегантный способ сохранить объект и связанные с ним свойства.

Допустим, у меня есть что-то вроде этого:

const Party = bookshelf.model("Party", {
  tableName: "Parties",
  address() {
    return this.hasOne("Address");
  }
});

const Address = bookshelf.model("Address", {
  tableName: "Addresses",
  party() {
    return this.belongsTo("Party");
  }
});

В БД:

Party: id, name, address_id
Address: id, country

Теперь я бы сохранил его в БД.

Я знаю, что эта операция должна быть транзакцией, потому что я должен сохранить обе сущности. Должен ли я сначала сохранить адрес (что не так важно) и в .then () использовать AddressId для заполнения foreignKey в новом объекте Party?

Или, может быть, на книжной полке. js существует некоторый ярлык, например save.withRelated или что-то вроде этого?

Пожалуйста, не думайте, что я не пробовал. Я много пробовал, читал, все безуспешно.

На мой взгляд, должно быть что-то вроде этого:

Party.forge({
  name: req.body.name,
  address: {
     country: req.body.address.country
  }
})
...