/** * Executes batch update and returns the affected rows. * * @see PreparedStatement#executeBatch() */ int[] executeBatchUpdate(SqlContext context,Object[] batchParams,BatchPreparedStatementHandler<Db> preparedStatementHandler) throws IllegalStateException, NestedSQLException;
@Override public int[] execute() { final SqlCommand primaryCommand = metadata.getSqlCommand(em.getEntityName(), SqlCommand.DELETE_COMMAND_NAME); final SqlCommand secondaryCommand = em.hasSecondaryTable() ? context.getSqlFactory().createDeleteCommand(context, em, true) : null; if(null == secondaryCommand) { return primaryCommand.executeBatchUpdate(this, idParameters); } return dao.doTransaction((s) -> { secondaryCommand.executeBatchUpdate(this, idParameters); return primaryCommand.executeBatchUpdate(this, idParameters); }); } }
@Override public int[] execute() { if(entities.isEmpty()) { return new int[0]; } prepare(); String[] fields = entities.get(0).getFieldNames().toArray(Arrays2.EMPTY_STRING_ARRAY); if(fields.length == 0) { throw new IllegalStateException("No update fields"); } final SqlCommand primaryCommand = context.getSqlFactory().createUpdateCommand(context, em, fields); final SqlCommand secondaryCommand = em.hasSecondaryTable() ? context.getSqlFactory().createUpdateCommand(context, em, fields, true) : null; if(null == secondaryCommand && null == primaryCommand) { return new int[0]; } Object[] records = entities.toArray(new EntityWrapper[entities.size()]); if(null == secondaryCommand) { return primaryCommand.executeBatchUpdate(this, records); } if(null == primaryCommand) { return secondaryCommand.executeBatchUpdate(this, records); } return dao.doTransaction((s) -> { int[] result = primaryCommand.executeBatchUpdate(this, records); secondaryCommand.executeBatchUpdate(this, records); return result; }); }
@Override public int[] execute() { if(entities.isEmpty()) { return new int[0]; } prepare(); String[] fields = entities.get(0).getKey().getFieldNames().toArray(Arrays2.EMPTY_STRING_ARRAY); if(fields.length == 0) { throw new IllegalStateException("No insert fields"); } final SqlCommand primaryCommand = context.getSqlFactory().createInsertCommand(context, em, fields); final SqlCommand secondaryCommand = em.hasSecondaryTable() ? context.getSqlFactory().createInsertCommand(context, em, fields, true) : null; Map[] records = toRecords(); if(null == secondaryCommand) { return primaryCommand.executeBatchUpdate(this, records); } if(null == primaryCommand) { return secondaryCommand.executeBatchUpdate(this, records); } return dao.doTransaction((s) -> { int[] result = primaryCommand.executeBatchUpdate(this, records); secondaryCommand.executeBatchUpdate(this, records); return result; }); }