From 7a7ca290814af2458930e83b2b03f745289f30b3 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Sun, 13 Apr 2025 15:49:58 +0200 Subject: [PATCH] [FIX] update of the @ManyToMany values --- src/org/atriasoft/archidata/dataAccess/DBAccessSQL.java | 8 ++++---- .../archidata/dataAccess/addOnSQL/AddOnManyToMany.java | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/org/atriasoft/archidata/dataAccess/DBAccessSQL.java b/src/org/atriasoft/archidata/dataAccess/DBAccessSQL.java index 5877cf7..c8e7fff 100644 --- a/src/org/atriasoft/archidata/dataAccess/DBAccessSQL.java +++ b/src/org/atriasoft/archidata/dataAccess/DBAccessSQL.java @@ -1172,7 +1172,7 @@ public class DBAccessSQL extends DBAccess { } final DataAccessAddOn addOn = findAddOnforField(field); if (addOn != null && !addOn.canInsert(field)) { - if (addOn.isInsertAsync(field)) { + if (addOn.isUpdateAsync(field)) { final List transmitKey = options.get(TransmitKey.class); if (transmitKey.size() != 1) { throw new DataAccessException( @@ -1242,6 +1242,9 @@ public class DBAccessSQL extends DBAccess { addOn.insertData(this, ps, field, data, iii); } } + for (final LazyGetter action : asyncActions) { + action.doRequest(); + } condition.injectQuery(this, ps, iii); final int out = ps.executeUpdate(); return out; @@ -1250,9 +1253,6 @@ public class DBAccessSQL extends DBAccess { } catch (final SQLException ex) { ex.printStackTrace(); } - for (final LazyGetter action : asyncActions) { - action.doRequest(); - } return 0L; } diff --git a/src/org/atriasoft/archidata/dataAccess/addOnSQL/AddOnManyToMany.java b/src/org/atriasoft/archidata/dataAccess/addOnSQL/AddOnManyToMany.java index f56d5df..290d4bf 100644 --- a/src/org/atriasoft/archidata/dataAccess/addOnSQL/AddOnManyToMany.java +++ b/src/org/atriasoft/archidata/dataAccess/addOnSQL/AddOnManyToMany.java @@ -475,7 +475,11 @@ public class AddOnManyToMany implements DataAccessAddOn { if (remoteKey == null) { throw new DataAccessException("Try to insert remote key with null value"); } - insertElements.add(new LinkTableGeneric(localKey, remoteKey)); + if (linkTable.first) { + insertElements.add(new LinkTableGeneric(localKey, remoteKey)); + } else { + insertElements.add(new LinkTableGeneric(remoteKey, localKey)); + } } if (insertElements.size() == 0) { LOGGER.warn("Insert multiple link without any value (may have null in the list): {}", dataCasted);