Class KeepOneDedupeStrategy

java.lang.Object
com.atlassian.confluence.internal.upgrade.constraint.dedup.KeepOneDedupeStrategy
All Implemented Interfaces:
DedupeStrategy
Direct Known Subclasses:
KeepBiggestIdDedupeStrategy, KeepSmallestIdDedupeStrategy

public abstract class KeepOneDedupeStrategy extends Object implements DedupeStrategy
Keep only one record. Delete the rest.
Since:
7.1.0
  • Method Details

    • perform

      public void perform(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, SortedSet<Object> ids) throws UpgradeException
      Description copied from interface: DedupeStrategy
      Remove duplicates so a unique constraint can be added
      Specified by:
      perform in interface DedupeStrategy
      Parameters:
      jdbcTemplate - A JdbcTemplate to be used
      ids - Set of Ids of duplicate rows in DB. Upon invocation of this method, only one of them can remain in the DB. All Confluence primary keys are of type Long or String so they can be used in SortedSet.
      Throws:
      UpgradeException - Thrown if there is any error removing duplicates, will cancel the constraint adding process
    • getIdToKeep

      protected abstract Object getIdToKeep(SortedSet<Object> ids)