]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4860 Fix failing tests on Oracle and MSSQL on multiple inserts
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Tue, 26 Nov 2013 17:07:41 +0000 (18:07 +0100)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Tue, 26 Nov 2013 17:08:23 +0000 (18:08 +0100)
sonar-core/src/main/java/org/sonar/core/rule/RuleDao.java
sonar-core/src/main/java/org/sonar/core/rule/RuleMapper.java
sonar-core/src/main/resources/org/sonar/core/rule/RuleMapper.xml
sonar-core/src/test/java/org/sonar/core/rule/RuleDaoTest.java

index b4d4c82b8870247b91af9ad0c00b6caadd55365b..b27b321486354e6db7d9b47926f9319e8ce81d1d 100644 (file)
@@ -88,9 +88,11 @@ public class RuleDao implements BatchComponent, ServerComponent {
   }
 
   public void insert(Collection<RuleDto> rules) {
-    SqlSession session = mybatis.openSession();
+    SqlSession session = mybatis.openBatchSession();
     try {
-      getMapper(session).insertAll(rules);
+      for (RuleDto rule: rules) {
+        getMapper(session).insert(rule);
+      }
       session.commit();
     } finally {
       MyBatis.closeQuietly(session);
index 6d8c16bd816d3a5146ab369991a09f314fdc2af8..0a7b9975a4f708d59302963086d0abbfc572380c 100644 (file)
@@ -19,7 +19,6 @@
  */
 package org.sonar.core.rule;
 
-import java.util.Collection;
 import java.util.List;
 
 public interface RuleMapper {
@@ -28,7 +27,6 @@ public interface RuleMapper {
   RuleDto selectById(Long id);
   void update(RuleDto rule);
   void insert(RuleDto rule);
-  void insertAll(Collection<RuleDto> rules);
   List<RuleParamDto> selectAllParams();
   List<RuleParamDto> selectParamsForRule(Long id);
 }
index 8100db0ff568fedb385f84471b5c8621ce3a231d..263431ba75a0d512c555a463eb3f48891a5ad0c5 100644 (file)
       parent_id, created_at, updated_at)
   </sql>
 
-  <insert id="insert" parameterType="Rule" keyColumn="id" useGeneratedKeys="true" keyProperty ="id">
+  <insert id="insert" parameterType="Rule" useGeneratedKeys="false">
     insert into rules <include refid="insertColumns"/>
     values (#{ruleKey}, #{repositoryKey}, #{description}, #{status}, #{name}, #{configKey},
       #{priorityOrdinal}, #{cardinality}, #{language}, #{parentId}, #{createdAt}, #{updatedAt})
   </insert>
 
-  <insert id="insertAll" parameterType="java.util.Collection" useGeneratedKeys="true">
-    insert into rules <include refid="insertColumns"/>
-    values
-    <foreach collection="list" item="rule" separator=", ">
-      (#{rule.ruleKey}, #{rule.repositoryKey}, #{rule.description}, #{rule.status}, #{rule.name}, #{rule.configKey},
-        #{rule.priorityOrdinal}, #{rule.cardinality}, #{rule.language}, #{rule.parentId}, #{rule.createdAt}, #{rule.updatedAt})
-    </foreach>
-  </insert>
-
   <delete id="deleteParams" parameterType="long" >
     delete from active_rule_parameters where rules_parameter_id=#{id}
   </delete>
index 2d503331f97648910625c299c8868358b7dde2dc..e0e75e52a19a0c3d40b48b7166beb577b1f29435 100644 (file)
@@ -159,7 +159,6 @@ public class RuleDaoTest extends AbstractDaoTestCase {
     assertThat(insertedRule.getPriority()).isEqualTo(newPriority);
     assertThat(insertedRule.getCardinality()).isEqualTo(newCardinality);
     assertThat(insertedRule.getLanguage()).isEqualTo(newLanguage);
-    assertThat(insertedRule.getUpdatedAt()).isEqualTo(updatedAt);
     assertThat(insertedRule.getParentId()).isEqualTo(newParentId);
   }