From 33665d47b8ec949d226e922f6473bfd7117342db Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Wed, 23 Oct 2024 10:47:08 +0200 Subject: [PATCH] [FIX] correction of the mis ordering in the many many request, force order by uuid --- .../kar/archidata/dataAccess/addOn/AddOnManyToMany.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java index 6a51375..c525376 100644 --- a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java +++ b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java @@ -120,7 +120,8 @@ public class AddOnManyToMany implements DataAccessAddOn { final String tmpVariable = "tmp_" + Integer.toString(count.value); querySelect.append(" (SELECT GROUP_CONCAT("); querySelect.append(tmpVariable); - if (manyToMany.mappedBy() == null || manyToMany.mappedBy().length() == 0) { + final boolean mode = manyToMany.mappedBy() == null || manyToMany.mappedBy().length() == 0; + if (mode) { querySelect.append(".object2Id "); } else { querySelect.append(".object1Id "); @@ -128,6 +129,7 @@ public class AddOnManyToMany implements DataAccessAddOn { if ("sqlite".equals(ConfigBaseVariable.getDBType())) { querySelect.append(", "); } else { + querySelect.append("ORDER BY uuid ASC "); querySelect.append("SEPARATOR "); } querySelect.append("'"); @@ -153,7 +155,7 @@ public class AddOnManyToMany implements DataAccessAddOn { querySelect.append(" = "); querySelect.append(tmpVariable); querySelect.append("."); - if (manyToMany.mappedBy() == null || manyToMany.mappedBy().length() == 0) { + if (mode) { querySelect.append("object1Id "); } else { querySelect.append("object2Id "); @@ -161,7 +163,7 @@ public class AddOnManyToMany implements DataAccessAddOn { if (!"sqlite".equals(ConfigBaseVariable.getDBType())) { querySelect.append(" GROUP BY "); querySelect.append(tmpVariable); - if (manyToMany.mappedBy() == null || manyToMany.mappedBy().length() == 0) { + if (mode) { querySelect.append(".object1Id"); } else { querySelect.append(".object2Id");