GraphQL和DAO

时间:2019-05-01 20:31:41

标签: graphql dao

假设您有一个数据访问对象:

class Person {
   constructor(id) {
   }
   getName(){}
   setName(name){}
   ...
}

并且您具有GraphQL服务,其中包含Person查询和变异:

query {
   person(id: ID!) { name }
}
mutation {
   person(id: ID!, name: String!): Boolean
}

并且您有一个PersistenceFactory可以处理Person()上的save()操作:

pf.getPerson(id)
...
pf.savePerson(p)

GraphQL查询在哪里?

在PersistenceFactory中?在这种情况下,您需要创建一个接受查询结果的Person构造函数。

在个人DAO中?通常,将Person绑定到特定的持久性策略上没有任何意义,但是在混合使用GraphQL的情况下,您已经有了关注点分离。

聚合查询如何?

query {
   person(id: ID) {name}
   cow(id: ID) {name}
}

如果每个实体都被单独对待,那么如果没有诸如PersonCow之类的对象或诸如pf.getEntities({person: personId, cow: cowId})之类的方法就无法完成

您是否还需要DAO?

0 个答案:

没有答案