setJoined(field, value) {

    let relationship = this.relationship(field);

    if (!relationship.multiple()) {

      if (!(value instanceof relationship.getModel())) {

        throw new Error(`${value} is not an instance of ${relationship.getModel().name}`);

      }

    } else {

      if (!(value instanceof ModelArray) && ModelArray.Model !== relationship.getModel()) {

        throw new Error(`${value} is not an instanceof ModelArray[${relationship.getModel().name}]`);

      }

    }

    if (!this._joinsCache[field]) {
      this._joinsList.push(field);
    }

    this._joinsCache[field] = value;

    return value;

  }
Set a joined object (Model or ModelArray)
@param {string} field The field (name of the join relationship)
@param {Model|ModelArray} value The joined model or array of models