This is an automated email from the git hooks/post-receive script. New commit to branch feature/4304_synchro_marees in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 986f95552c3087d1f891d70ec27f10054c1b8c28 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 8 15:56:27 2016 +0200 Make delete actions works --- .../service/sql/batch/actions/AbstractTablesAction.java | 5 ++++- .../topia/service/sql/batch/actions/DeleteTablesAction.java | 13 ++++++++++--- .../service/sql/batch/actions/ReplicateTablesAction.java | 6 ++++++ .../topia/service/sql/batch/actions/UpdateTablesAction.java | 5 +++++ .../topia/service/sql/batch/tables/TopiaSqlTables.java | 11 +++++++++++ 5 files changed, 36 insertions(+), 4 deletions(-) diff --git a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java index 0851106..ae640f3 100644 --- a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java +++ b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractTablesAction.java @@ -27,6 +27,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.support.TopiaSqlWork; import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTable; +import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTables; import org.nuiton.util.TimeLog; import javax.sql.rowset.serial.SerialBlob; @@ -61,12 +62,14 @@ public abstract class AbstractTablesAction<R extends AbstractTablesRequest> exte super(request); } + protected abstract TopiaSqlTables getTables() ; + protected abstract void executeOnTable(R request, TopiaSqlTable table, PreparedStatement readStatement) throws SQLException; @Override protected final void execute() { - for (TopiaSqlTable table : request.getTables()) { + for (TopiaSqlTable table : getTables()) { long startTable = TimeLog.getTime(); diff --git a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java index bec2b89..ba71564 100644 --- a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java +++ b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DeleteTablesAction.java @@ -27,6 +27,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTable; +import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTables; import java.io.IOException; import java.sql.PreparedStatement; @@ -43,7 +44,7 @@ import java.util.List; */ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest> { - public static final String DELETE_STATEMENT = "DELETE FROM %s.%s WHERE topiaId = '%%s'"; + public static final String DELETE_STATEMENT = "DELETE FROM %s.%s WHERE topiaId = '%%s';\n"; /** * Logger. */ @@ -64,7 +65,7 @@ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest List<String> columnNames = getColumnNames(readResultSetMetaData, columnCount); String topiaIdColumnName = TopiaEntity.PROPERTY_TOPIA_ID.toLowerCase(); - int topiaIdColumnIndex = columnNames.indexOf(topiaIdColumnName); + int topiaIdColumnIndex = columnNames.indexOf(topiaIdColumnName) + 1; boolean useOutputWriter = useOutputWriter(); boolean useOutputDb = useOutputDb(); @@ -95,7 +96,7 @@ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest if (useOutputDb) { writeStatement.clearParameters(); - writeStatement.setObject(1, topiaId); + writeStatement.setString(1, topiaId); writeStatement.addBatch(); } @@ -123,6 +124,12 @@ public class DeleteTablesAction extends AbstractTablesAction<DeleteTablesRequest } + @Override + protected TopiaSqlTables getTables() { + return request.getTables().reverse(); + + } + protected String newDeleteStatementSql(TopiaSqlTable table) { String sql = String.format(DELETE_STATEMENT, table.getSchemaName(), table.getTableName()); diff --git a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java index 792d5e9..cad3c45 100644 --- a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java +++ b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java @@ -25,6 +25,7 @@ package org.nuiton.topia.service.sql.batch.actions; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTable; +import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTables; import java.io.IOException; import java.sql.PreparedStatement; @@ -121,6 +122,11 @@ public class ReplicateTablesAction extends AbstractTablesAction<ReplicateTablesR } + @Override + protected TopiaSqlTables getTables() { + return request.getTables(); + } + protected String newInsertStatementSql(TopiaSqlTable table, List<String> columnNames) { StringBuilder columnNamesBuilder = new StringBuilder(); diff --git a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java index 2b48710..ed4bab4 100644 --- a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java +++ b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/UpdateTablesAction.java @@ -28,6 +28,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTable; +import org.nuiton.topia.service.sql.batch.tables.TopiaSqlTables; import javax.sql.rowset.serial.SerialBlob; import java.io.IOException; @@ -57,6 +58,10 @@ public class UpdateTablesAction extends AbstractTablesAction<UpdateTablesRequest super(request); } + protected TopiaSqlTables getTables() { + return request.getTables(); + } + @Override protected void executeOnTable(UpdateTablesRequest request, TopiaSqlTable table, PreparedStatement readStatement) throws SQLException { diff --git a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTables.java b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTables.java index 1b02f23..82f1a87 100644 --- a/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTables.java +++ b/observe-topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/tables/TopiaSqlTables.java @@ -31,6 +31,7 @@ import org.nuiton.topia.persistence.TopiaEntityEnum; import java.util.Collections; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -79,6 +80,16 @@ public class TopiaSqlTables implements Iterable<TopiaSqlTable> { .toString(); } + public TopiaSqlTables reverse() { + List<TopiaSqlTable> reverseList = new LinkedList<>(); + for (TopiaSqlTable orderedTable : orderedTables) { + reverseList.add(0,orderedTable); + } + ImmutableSet<TopiaSqlTable> reverseSet = ImmutableSet.copyOf(reverseList); + + return new TopiaSqlTables(tablesByFullyTableName, reverseSet); + } + /** * Created on 02/01/16. * -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.