}
}
- public int delete(DbSession dbSession, PropertyDto dto) {
- return getMapper(dbSession).delete(dto.getKey(), dto.getUserId(), dto.getResourceId());
+ /**
+ * Delete either global, user, component or component per user properties.
+ * <p>Behaves in exactly the same way as {@link #selectByQuery(PropertyQuery, DbSession)} but deletes rather than
+ * selects</p>
+ *
+ * Used by Governance.
+ */
+ public int deleteByQuery(DbSession dbSession, PropertyQuery query) {
+ return getMapper(dbSession).deleteByQuery(query);
}
- public void deleteById(DbSession dbSession, long id) {
- getMapper(dbSession).deleteById(id);
+ public int delete(DbSession dbSession, PropertyDto dto) {
+ return getMapper(dbSession).delete(dto.getKey(), dto.getUserId(), dto.getResourceId());
}
public void deleteProjectProperty(String key, Long projectId) {
</choose>
</delete>
- <delete id="deleteById" parameterType="long">
- delete from properties
- where
- id=#{id}
- </delete>
-
<delete id="deleteProjectProperty" parameterType="map">
delete from properties
where
and user_id is null
</delete>
+ <delete id="deleteByQuery">
+ delete from properties
+ <where>
+ <if test="query.key() != null">
+ and prop_key=#{query.key}
+ </if>
+ <if test="query.componentId() != null">
+ and resource_id=#{query.componentId}
+ </if>
+ <if test="query.userId() != null">
+ and user_id=#{query.userId}
+ </if>
+ </where>
+ </delete>
+
<update id="renamePropertyKey" parameterType="map">
update properties set
prop_key=#{newKey}
};
}
- @Test
- @UseDataProvider("possibleValuesProvider")
- public void deleteById(String value) throws SQLException {
- long id1 = insertProperty("global.key", value, null, null);
- long id2 = insertProperty("component.key", value, 10L, null);
- long id3 = insertProperty("user.key", value, null, 100L);
-
- underTest.deleteById(dbTester.getSession(), id1);
- dbTester.getSession().commit();
-
- assertThatPropertiesRow(id1)
- .doesNotExist();
- assertThatPropertiesRow(id2)
- .hasKey("component.key");
- assertThatPropertiesRow(id3)
- .hasKey("user.key");
-
- underTest.deleteById(dbTester.getSession(), id2);
- dbTester.getSession().commit();
-
- assertThatPropertiesRow(id2)
- .doesNotExist();
- assertThatPropertiesRow(id3)
- .hasKey("user.key");
-
- underTest.deleteById(dbTester.getSession(), id3);
- dbTester.getSession().commit();
-
- assertThatPropertiesRow(id3)
- .doesNotExist();
- }
-
- @DataProvider
- public static Object[][] possibleValuesProvider() {
- return new Object[][] {
- {null},
- {""},
- {"some value"},
- {VALUE_SIZE_4000},
- {VALUE_SIZE_4001}
- };
- }
-
- @Test
- public void deleteById_does_not_fail_if_row_with_specified_id_does_not_exist() {
- underTest.deleteById(dbTester.getSession(), 12L);
- dbTester.getSession().commit();
- }
-
@Test
public void delete_project_property() throws SQLException {
long projectId1 = insertProject("A").getId();