Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

3 changed files:

Changes:

  • services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/ng/ReferentialSynchronizeServiceLocal.java
    ... ... @@ -55,12 +55,14 @@ public class ReferentialSynchronizeServiceLocal extends ObserveServiceLocal impl
    55 55
             byte[] insertSqlCode = oppositeSqlsRequest.getInsertSqlCode();
    
    56 56
             byte[] insertAssociationSqlCode = oppositeSqlsRequest.getInsertAssociationSqlCode();
    
    57 57
             byte[] updateSqlCode = oppositeSqlsRequest.getUpdateSqlCode();
    
    58
    +        byte[] updateAssociationSqlCode = oppositeSqlsRequest.getUpdateAssociationSqlCode();
    
    58 59
             byte[] deleteSqlCode = request.getDeleteSqlCode();
    
    59 60
             byte[] desactivateSqlCode = request.getDesactivateSqlCode();
    
    60 61
             getTopiaPersistenceContext().executeSqlScripts(deleteAssociationSqlCode,
    
    61 62
                                                            insertSqlCode,
    
    62 63
                                                            insertAssociationSqlCode,
    
    63 64
                                                            updateSqlCode,
    
    65
    +                                                       updateAssociationSqlCode,
    
    64 66
                                                            desactivateSqlCode,
    
    65 67
                                                            deleteSqlCode);
    
    66 68
             timeLog.log(startTime, "executeSqlsRequests");
    

  • services-local/src/main/java/fr/ird/observe/services/local/service/actions/synchro/referential/sql/UpdateSqlStatementGenerator.java
    ... ... @@ -158,7 +158,7 @@ public class UpdateSqlStatementGenerator<D extends ReferentialDto> {
    158 158
             String id = referentialDto.getId();
    
    159 159
             for (TopiaMetadataAssociation association : associations) {
    
    160 160
                 // On commence toujours par supprimer toutes les anciennes associations, elles seront ré-ajoutées juste après
    
    161
    -            String deleteSql = TopiaSqlStatements.generateAssociationDeleteStatement(association, id);
    
    161
    +            String deleteSql = TopiaSqlStatements.generateManyToManyAssociationDeleteStatement(association, id);
    
    162 162
                 result.add(TopiaSqlStatements.boxAssociationStatement(deleteSql));
    
    163 163
     
    
    164 164
                 Collection<ReferentialDtoReference<?, ?>> associationValues = binder.obtainSourceProperty(referentialDto, association.getTargetPropertyName());
    

  • services/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/ng/ReferentialSynchronizeSqlsRequest.java
    ... ... @@ -40,6 +40,7 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    40 40
         private final byte[] insertAssociationSqlCode;
    
    41 41
         private final byte[] insertSqlCode;
    
    42 42
         private final byte[] updateSqlCode;
    
    43
    +    private final byte[] updateAssociationSqlCode;
    
    43 44
         private final byte[] deleteAssociationSqlCode;
    
    44 45
         private final byte[] deleteSqlCode;
    
    45 46
         private final byte[] desactivateSqlCode;
    
    ... ... @@ -47,12 +48,14 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    47 48
         private ReferentialSynchronizeSqlsRequest(String insertSqlCode,
    
    48 49
                                                   String insertAssociationSqlCode,
    
    49 50
                                                   String updateSqlCode,
    
    51
    +                                              String updateAssociationSqlCode,
    
    50 52
                                                   String deleteSqlCode,
    
    51 53
                                                   String deleteAssociationSqlCode,
    
    52 54
                                                   String desactivateSqlCode) {
    
    53 55
             this.insertSqlCode = insertSqlCode.getBytes();
    
    54 56
             this.insertAssociationSqlCode = insertAssociationSqlCode.getBytes();
    
    55 57
             this.updateSqlCode = updateSqlCode.getBytes();
    
    58
    +        this.updateAssociationSqlCode= updateAssociationSqlCode.getBytes();
    
    56 59
             this.deleteSqlCode = deleteSqlCode.getBytes();
    
    57 60
             this.deleteAssociationSqlCode = deleteAssociationSqlCode.getBytes();
    
    58 61
             this.desactivateSqlCode = desactivateSqlCode.getBytes();
    
    ... ... @@ -78,6 +81,10 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    78 81
             return insertAssociationSqlCode;
    
    79 82
         }
    
    80 83
     
    
    84
    +    public byte[] getUpdateAssociationSqlCode() {
    
    85
    +        return updateAssociationSqlCode;
    
    86
    +    }
    
    87
    +
    
    81 88
         public byte[] getDeleteAssociationSqlCode() {
    
    82 89
             return deleteAssociationSqlCode;
    
    83 90
         }
    
    ... ... @@ -91,6 +98,7 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    91 98
             private final StringBuilder addAssociationTasksBuilder = new StringBuilder();
    
    92 99
             private final StringBuilder addTasksBuilder = new StringBuilder();
    
    93 100
             private final StringBuilder updateTasksBuilder = new StringBuilder();
    
    101
    +        private final StringBuilder updateAssociationTasksBuilder = new StringBuilder();
    
    94 102
             private final StringBuilder deleteTasksBuilder = new StringBuilder();
    
    95 103
             private final StringBuilder deleteAssociationTasksBuilder = new StringBuilder();
    
    96 104
             private final StringBuilder desactivateTasksBuilder = new StringBuilder();
    
    ... ... @@ -99,6 +107,7 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    99 107
                 return new ReferentialSynchronizeSqlsRequest(addTasksBuilder.toString(),
    
    100 108
                                                              addAssociationTasksBuilder.toString(),
    
    101 109
                                                              updateTasksBuilder.toString(),
    
    110
    +                                                         updateAssociationTasksBuilder.toString(),
    
    102 111
                                                              deleteTasksBuilder.toString(),
    
    103 112
                                                              deleteAssociationTasksBuilder.toString(),
    
    104 113
                                                              desactivateTasksBuilder.toString());
    
    ... ... @@ -116,7 +125,11 @@ public class ReferentialSynchronizeSqlsRequest implements ObserveDto {
    116 125
     
    
    117 126
             public Builder addUpdateStatement(String sql) {
    
    118 127
                 log.info("Add update sql: " + sql);
    
    119
    -            updateTasksBuilder.append(sql);
    
    128
    +            if (sql.startsWith(TopiaSqlStatements.ASSOCIATION_STATEMENT_PREFIX)) {
    
    129
    +                updateAssociationTasksBuilder.append(TopiaSqlStatements.unboxAssociationStatement(sql));
    
    130
    +            } else {
    
    131
    +                updateTasksBuilder.append(sql);
    
    132
    +            }
    
    120 133
                 return this;
    
    121 134
             }
    
    122 135