1
私は次の関係をつかむためにアポロ/ graphql/sequelizeを使用します。流星アポロgraphql/sequelizeキャッシュクエリの結果を
私は複数のマーカーを持っています。それぞれには1つのスタイルしかありません。マーカーは、同じスタイルを使用することもできます。
Sequelize:
var Marker = db.define('markers', {
name: {type: Sequelize.TEXT},
idstyle: {type: Sequelize.INTEGER},
}, {timestamps: false});
const Markers = db.models.markers;
var Style = db.define('styles', {
name: {type: Sequelize.TEXT},
icon: {type: Sequelize.TEXT}
}, {timestamps: false});
Marker.belongsTo(Style, {foreignKey: 'idstyle'});
graphqlスキーマ:
type Marker {
id: Int
name: String
style: Style
}
type Style {
id: Int
name: String
icon: String
}
type Query {
marker(limit: Int, offset: Int): [Marker]
style(limit: Int, offset: Int): [Style]
}
リゾルバ:
Query: {
async marker(root, args, context) {
return Markers.findAll({limit: args.limit, offset: args.offset});
},
async style(root, args, context) {
return Styles.findAll({limit: args.limit, offset: args.offset});
}
},
Marker: {
async style(marker) {
return marker.getStyle();
}
}
私はいかなる知的があるように思われないことに気づきました次のクエリを実行するとキャッシング:
query{
marker{
name
style{
name
}
}
}
別のマーカーの結果として既に返されている場合でも、同じスタイルが再度クエリされたようです。あなたは、要求された形式のIDを繰り返していることがわかります。