This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 3c8af4b9318c55dbe45efad3a4718a6fc542c3f3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Jul 4 17:51:00 2016 +0200 In sql generator we must to keep same order of parameters values + use default primitive values --- .../synchro/InsertSqlStatementGenerator.java | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/synchro/InsertSqlStatementGenerator.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/synchro/InsertSqlStatementGenerator.java index 312def0..9dcd36c 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/synchro/InsertSqlStatementGenerator.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/synchro/InsertSqlStatementGenerator.java @@ -13,6 +13,8 @@ import org.nuiton.util.beans.BinderFactory; import java.util.Collection; import java.util.Date; import java.util.LinkedHashSet; +import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.Set; @@ -71,7 +73,7 @@ public class InsertSqlStatementGenerator<R extends ReferentialDto> { Set<String> propertyNamesSet = metadataEntity.getProperties().keySet(); this.simplePropertyNames = propertyNamesSet.toArray(new String[propertyNamesSet.size()]); Set<String> manyToOneAssociationNamesSet = metadataEntity.getManyToOneAssociations().keySet(); - this.manyToOneAssociationNames = propertyNamesSet.toArray(new String[manyToOneAssociationNamesSet.size()]); + this.manyToOneAssociationNames = manyToOneAssociationNamesSet.toArray(new String[manyToOneAssociationNamesSet.size()]); Map<String, String> manyToManyAssociationsMap = metadataEntity.getManyToManyAssociations(); this.manyToManyAssociations = new LinkedHashSet<>(); @@ -88,15 +90,15 @@ public class InsertSqlStatementGenerator<R extends ReferentialDto> { public String generateSql(R referentialDto) { - Set<String> parameters = new LinkedHashSet<>(); + List<String> parameters = new LinkedList<>(); addStringParameter(referentialDto.getId(), parameters); addOtherTypeParameter(referentialDto.getVersion(), parameters); addDateParameter(referentialDto.getCreateDate(), parameters); - Map<String, Object> simpleParameters = binder.obtainProperties(referentialDto, true, simplePropertyNames); - for (Object parameterValue : simpleParameters.values()) { - + Map<String, Object> simpleParameters = binder.obtainProperties(referentialDto, true, true, simplePropertyNames); + for (String simplePropertyName : simplePropertyNames) { + Object parameterValue = simpleParameters.get(simplePropertyName); if (parameterValue == null) { addNullParameter(parameters); continue; @@ -114,12 +116,11 @@ public class InsertSqlStatementGenerator<R extends ReferentialDto> { continue; } addOtherTypeParameter(parameterValue, parameters); - } - Map<String, Object> compositionParameters = binder.obtainProperties(referentialDto, true, manyToOneAssociationNames); - for (Object parameterValue : compositionParameters.values()) { - + Map<String, Object> manyToOneParameters = binder.obtainProperties(referentialDto, true, true, manyToOneAssociationNames); + for (String manyToOneAssociationName : manyToOneAssociationNames) { + Object parameterValue = manyToOneParameters.get(manyToOneAssociationName); if (parameterValue == null) { addNullParameter(parameters); continue; @@ -131,7 +132,6 @@ public class InsertSqlStatementGenerator<R extends ReferentialDto> { if (parameterValue instanceof ReferentialReference) { addReferentialReferenceParameter((ReferentialReference) parameterValue, parameters); } - } String result = String.format(INSERT_STATEMENT, @@ -201,31 +201,31 @@ public class InsertSqlStatementGenerator<R extends ReferentialDto> { return columnNames; } - private void addNullParameter(Set<String> parameters) { + private void addNullParameter(List<String> parameters) { parameters.add("NULL"); } - private void addStringParameter(String parameter, Set<String> parameters) { + private void addStringParameter(String parameter, List<String> parameters) { parameters.add("'" + parameter.replaceAll("'", "''") + "'"); } - private void addDateParameter(Date parameter, Set<String> parameters) { + private void addDateParameter(Date parameter, List<String> parameters) { parameters.add("'" + parameter + "'"); } - private void addEnumParameter(Enum parameter, Set<String> parameters) { + private void addEnumParameter(Enum parameter, List<String> parameters) { parameters.add("" + parameter.ordinal()); } - private void addOtherTypeParameter(Object parameter, Set<String> parameters) { + private void addOtherTypeParameter(Object parameter, List<String> parameters) { parameters.add("" + parameter); } - private void addReferentialReferenceParameter(ReferentialReference parameter, Set<String> parameters) { + private void addReferentialReferenceParameter(ReferentialReference parameter, List<String> parameters) { addStringParameter(parameter.getId(), parameters); } - private void addReferentialDtoParameter(ReferentialDto parameter, Set<String> parameters) { + private void addReferentialDtoParameter(ReferentialDto parameter, List<String> parameters) { addStringParameter(parameter.getId(), parameters); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.