}
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);
*/
package org.sonar.core.rule;
-import java.util.Collection;
import java.util.List;
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);
}
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>
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);
}