У меня определена следующая модель:
import db from "../connection.js";
import objection from "objection";
const { Model } = objection;
Model.knex(db);
class User extends Model {
static get tableName() {
return "users";
}
static get relationMappings() {
return {
emails: {
relation: Model.HasManyRelation,
modelClass: Email,
join: {
from: "users.id",
to: "emails.user_id",
}
}
}
}
}
class Email extends Model {
static get tableName() {
return "emails";
}
static get relationMappings() {
return {
user: {
relation: Model.BelongsToOneRelation,
modelClass: User,
join: {
from: "emails.user_id",
to: "users.id",
},
},
};
}
}
И для запроса User
с их адресами электронной почты потребуется withGraphFetched()
, чтобы каждый раз явно запускаться как:
const myUser = await User.query().withGraphFetched("emails").findById(1)
Мне не удалось выяснить, что написать в определении модели, чтобы сделать это возможным, и я не вижу таких примеров в Интернете. Возможно ли ВСЕГДА автоматически включать в запрос withGraphFetched("emails")
, чтобы его не нужно было каждый раз явно записывать?