Скажем, у вас есть объект доступа к данным:
class Person {
constructor(id) {
}
getName(){}
setName(name){}
...
}
И у вас есть служба GraphQL с запросом и мутацией Person:
query {
person(id: ID!) { name }
}
mutation {
person(id: ID!, name: String!): Boolean
}
И у вас есть PersistenceFactory, которая обрабатывает сохранение() операции над Person ():
pf.getPerson(id)
...
pf.savePerson(p)
Куда идут запросы GraphQL?
На фабрике персистентности?В этом случае вам нужно создать конструктор Person, который будет принимать результаты запроса.
В Person DAO?Обычно не имеет смысла связывать Person с определенной стратегией персистентности, но с GraphQL в миксе у вас уже есть такое разделение интересов.
А как насчет агрегированных запросов?:
query {
person(id: ID) {name}
cow(id: ID) {name}
}
если каждая сущность обрабатывается индивидуально, то этого нельзя сделать без какого-либо объекта, такого как PersonCow, или такого метода, как pf.getEntities({person: personId, cow: cowId})
Вам даже нужен DAO?