diff --git a/packages/demo/src/schema.ts b/packages/demo/src/schema.ts
index cf2cc4c855f94cf386c76051de0836568aaf988c_cGFja2FnZXMvZGVtby9zcmMvc2NoZW1hLnRz..1e7db076f47c67a3419447e79fa87289a27c1d9b_cGFja2FnZXMvZGVtby9zcmMvc2NoZW1hLnRz 100644
--- a/packages/demo/src/schema.ts
+++ b/packages/demo/src/schema.ts
@@ -29,8 +29,8 @@
   },
   {
     is_in: {
-      subject: "Museum",
-      object: "City",
+      subject: ["Museum"],
+      object: ["City"],
       cardinality: "1*",
     },
     director: {
@@ -34,8 +34,8 @@
       cardinality: "1*",
     },
     director: {
-      subject: "Museum",
-      object: "Person",
+      subject: ["Museum"],
+      object: ["Person"],
       cardinality: "**",
     },
   }
diff --git a/packages/ra-cubicweb/src/Schema.ts b/packages/ra-cubicweb/src/Schema.ts
index cf2cc4c855f94cf386c76051de0836568aaf988c_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL1NjaGVtYS50cw==..1e7db076f47c67a3419447e79fa87289a27c1d9b_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL1NjaGVtYS50cw== 100644
--- a/packages/ra-cubicweb/src/Schema.ts
+++ b/packages/ra-cubicweb/src/Schema.ts
@@ -15,8 +15,8 @@
   string,
   {
     cardinality: CardinalityPair;
-    subject: keyof E;
-    object: keyof E;
+    subject: Array<keyof E>;
+    object: Array<keyof E>;
   }
 >;
 
diff --git a/packages/ra-cubicweb/src/index.ts b/packages/ra-cubicweb/src/index.ts
index cf2cc4c855f94cf386c76051de0836568aaf988c_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL2luZGV4LnRz..1e7db076f47c67a3419447e79fa87289a27c1d9b_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL2luZGV4LnRz 100644
--- a/packages/ra-cubicweb/src/index.ts
+++ b/packages/ra-cubicweb/src/index.ts
@@ -91,7 +91,7 @@
       const subjectRelations = Object.fromEntries(
         Object.entries(schema.relationships).filter(
           ([_relationName, definition]: [string, S["relationships"][string]]) =>
-            definition.subject === resource
+            definition.subject.includes(resource)
         )
       );
       for (const relationName in subjectRelations) {
@@ -95,7 +95,4 @@
         )
       );
       for (const relationName in subjectRelations) {
-        const definition: S["relationships"][string] =
-          subjectRelations[relationName];
-
         const result = await rqlClient.queryRows(
@@ -101,5 +98,5 @@
         const result = await rqlClient.queryRows(
-          `Any TARGET Where TARGET is ${definition.object},X ${relationName} TARGET, X eid ${params.id}`
+          `Any TARGET Where X ${relationName} TARGET, X eid ${params.id}`
         );
         if (result.length !== 0) {
           entity[relationName] = result.map((row) => row[0]);