From 4884dc315010f1b5b4c2449a07106260b13c3a56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20No=C3=ABl?= Date: Tue, 29 Nov 2022 15:59:53 +0100 Subject: [PATCH 1/2] put inversedBy only once for many to many relations --- .../server/services/schema-builder/content-type-builder.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js b/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js index eb46b3c0ec..58db53f398 100644 --- a/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js +++ b/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js @@ -286,10 +286,10 @@ const generateRelation = ({ key, attribute, uid, targetAttribute = {} }) => { case 'manyToMany': { opts.relation = 'manyToMany'; - if (attribute.dominant) { - opts.mappedBy = key; - } else { + if (attribute.dominant === false) { opts.inversedBy = key; + } else { + opts.mappedBy = key; } break; From e4ceee036ead2cbd3951a1fc774459ab04304849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20No=C3=ABl?= Date: Wed, 30 Nov 2022 09:22:50 +0100 Subject: [PATCH 2/2] set dominant attribute --- .../services/schema-builder/content-type-builder.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js b/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js index 58db53f398..9bef2d46a3 100644 --- a/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js +++ b/packages/core/content-type-builder/server/services/schema-builder/content-type-builder.js @@ -207,6 +207,10 @@ module.exports = function createComponentBuilder() { const attribute = newAttributes[key]; if (isRelation(attribute)) { + if (['manyToMany', 'oneToOne'].includes(attribute.relation)) { + attribute.dominant = true; + } + this.setRelation({ key, uid, @@ -286,10 +290,10 @@ const generateRelation = ({ key, attribute, uid, targetAttribute = {} }) => { case 'manyToMany': { opts.relation = 'manyToMany'; - if (attribute.dominant === false) { - opts.inversedBy = key; - } else { + if (attribute.dominant) { opts.mappedBy = key; + } else { + opts.inversedBy = key; } break;