From: David Gageot Date: Tue, 10 Jul 2012 09:54:42 +0000 (+0200) Subject: SONAR-3437 Fix batch insert on mysql X-Git-Tag: 3.2~158 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f8832bb54e8de7373bb9f4df87f32f0dbed00c17;p=sonarqube.git SONAR-3437 Fix batch insert on mysql --- diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java b/sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java index e8ed644c2c8..34ae2758b41 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java +++ b/sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java @@ -189,7 +189,7 @@ public final class MeasurePersister { MeasureMapper mapper = session.getMapper(MeasureMapper.class); for (MeasureModel value : values) { - mapper.insert(value); + mapper.batchInsert(value); } session.commit(); @@ -204,7 +204,7 @@ public final class MeasurePersister { MeasureMapper mapper = session.getMapper(MeasureMapper.class); for (MeasureModel value : values) { - mapper.insert(value); + mapper.batchInsert(value); mapper.insertData(value); } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/database/model/MeasureMapper.java b/sonar-plugin-api/src/main/java/org/sonar/api/database/model/MeasureMapper.java index 59950963747..bc73674425b 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/database/model/MeasureMapper.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/database/model/MeasureMapper.java @@ -22,6 +22,8 @@ package org.sonar.api.database.model; public interface MeasureMapper { void insert(MeasureModel measure); + void batchInsert(MeasureModel measure); + void insertData(MeasureModel data); void update(MeasureModel measure); diff --git a/sonar-plugin-api/src/main/resources/org/sonar/api/database/model/MeasureMapper-oracle.xml b/sonar-plugin-api/src/main/resources/org/sonar/api/database/model/MeasureMapper-oracle.xml index 4213e3c9003..b64fb242646 100644 --- a/sonar-plugin-api/src/main/resources/org/sonar/api/database/model/MeasureMapper-oracle.xml +++ b/sonar-plugin-api/src/main/resources/org/sonar/api/database/model/MeasureMapper-oracle.xml @@ -19,7 +19,23 @@ ) - + + + select project_measures_seq.NEXTVAL from DUAL + + INSERT INTO project_measures (id, + value, metric_id, snapshot_id, rule_id, text_value, tendency, measure_date, + project_id, alert_status, alert_text, url, description, rule_priority, characteristic_id, variation_value_1, + variation_value_2, variation_value_3, variation_value_4, variation_value_5, person_id) + VALUES (#{id}, + #{value}, #{metricId}, #{snapshotId}, #{ruleId}, #{textValue, jdbcType=VARCHAR}, #{tendency}, + #{measureDate, jdbcType=TIMESTAMP}, #{projectId}, #{alertStatus, jdbcType=VARCHAR}, #{alertText, jdbcType=VARCHAR}, + #{url, jdbcType=VARCHAR}, #{description, jdbcType=VARCHAR}, #{rulePriority.ordinal}, #{characteristic.id}, #{variationValue1}, + #{variationValue2}, #{variationValue3}, #{variationValue4}, #{variationValue5}, #{personId} + ) + + + select measure_data_seq.NEXTVAL from DUAL diff --git a/sonar-plugin-api/src/main/resources/org/sonar/api/database/model/MeasureMapper.xml b/sonar-plugin-api/src/main/resources/org/sonar/api/database/model/MeasureMapper.xml index b24af941d6a..c6eee0d29f7 100644 --- a/sonar-plugin-api/src/main/resources/org/sonar/api/database/model/MeasureMapper.xml +++ b/sonar-plugin-api/src/main/resources/org/sonar/api/database/model/MeasureMapper.xml @@ -16,7 +16,20 @@ ) - + + INSERT INTO project_measures ( + value, metric_id, snapshot_id, rule_id, text_value, tendency, measure_date, + project_id, alert_status, alert_text, url, description, rule_priority, characteristic_id, variation_value_1, + variation_value_2, variation_value_3, variation_value_4, variation_value_5, person_id) + VALUES ( + #{value}, #{metricId}, #{snapshotId}, #{ruleId}, #{textValue, jdbcType=VARCHAR}, #{tendency}, + #{measureDate, jdbcType=TIMESTAMP}, #{projectId}, #{alertStatus, jdbcType=VARCHAR}, #{alertText, jdbcType=VARCHAR}, + #{url, jdbcType=VARCHAR}, #{description, jdbcType=VARCHAR}, #{rulePriority.ordinal}, #{characteristic.id}, #{variationValue1}, + #{variationValue2}, #{variationValue3}, #{variationValue4}, #{variationValue5}, #{personId} + ) + + + INSERT INTO measure_data (measure_id, snapshot_id, data) VALUES (#{measureData.measure.id}, #{snapshotId}, #{measureData.data})