From bc9b8b248e5c9331ffb4b0f2123bca95717be3f9 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 7 May 2022 22:31:28 +0200 Subject: [PATCH] #663 - Update id sequences before and after migration --- .../databasemigrator/BatchConfiguration.java | 57 +++++++++------- .../destination/DestinationRepository.java | 12 ++++ .../destination/ProvidesID.java | 8 +++ .../account/DestinationAccount.java | 4 +- .../account/DestinationAccountRepository.java | 4 +- .../category/DestinationCategory.java | 4 +- .../DestinationCategoryRepository.java | 4 +- .../destination/chart/DestinationChart.java | 3 +- .../chart/DestinationChartRepository.java | 5 +- .../destination/hint/DestinationHint.java | 6 +- .../hint/DestinationHintRepository.java | 4 +- .../destination/icon/DestinationIcon.java | 4 +- .../icon/DestinationIconRepository.java | 4 +- .../destination/image/DestinationImage.java | 3 +- .../image/DestinationImageRepository.java | 4 +- .../repeating/DestinationRepeatingOption.java | 3 +- .../DestinationRepeatingOptionRepository.java | 4 +- .../end/DestinationRepeatingEnd.java | 3 +- .../DestinationRepeatingEndAfterXTimes.java | 3 +- ...tionRepeatingEndAfterXTimesRepository.java | 4 +- .../end/DestinationRepeatingEndDate.java | 3 +- ...DestinationRepeatingEndDateRepository.java | 4 +- .../end/DestinationRepeatingEndNever.java | 3 +- ...estinationRepeatingEndNeverRepository.java | 4 +- .../DestinationRepeatingEndRepository.java | 4 +- .../DestinationRepeatingModifier.java | 4 +- .../DestinationRepeatingModifierDays.java | 4 +- ...nationRepeatingModifierDaysRepository.java | 4 +- .../DestinationRepeatingModifierMonths.java | 4 +- ...tionRepeatingModifierMonthsRepository.java | 4 +- ...estinationRepeatingModifierRepository.java | 4 +- .../DestinationRepeatingModifierYears.java | 4 +- ...ationRepeatingModifierYearsRepository.java | 4 +- .../report/DestinationReportColumn.java | 5 +- .../DestinationReportColumnRepository.java | 4 +- .../report/DestinationReportSettings.java | 5 +- .../DestinationReportSettingsRepository.java | 4 +- .../settings/DestinationSettings.java | 5 +- .../DestinationSettingsRepository.java | 4 +- .../destination/tag/DestinationTag.java | 6 +- .../tag/DestinationTagRepository.java | 4 +- .../tag/DestinationTemplateTag.java | 5 +- .../tag/DestinationTemplateTagRepository.java | 4 +- .../tag/DestinationTransactionTag.java | 5 +- .../DestinationTransactionTagRepository.java | 4 +- .../template/DestinationTemplate.java | 5 +- .../DestinationTemplateRepository.java | 4 +- .../DestinationTemplateGroup.java | 5 +- .../DestinationTemplateGroupRepository.java | 4 +- .../transaction/DestinationTransaction.java | 5 +- .../DestinationTransactionRepository.java | 4 +- .../destination/user/DestinationUser.java | 6 +- .../user/DestinationUserRepository.java | 4 +- .../listener/GenericStepListener.java | 48 +++++++++++-- .../databasemigrator/UpdateSequencesTest.java | 67 +++++++++++++++++++ 55 files changed, 272 insertions(+), 128 deletions(-) create mode 100644 BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationRepository.java create mode 100644 BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/ProvidesID.java create mode 100644 BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/UpdateSequencesTest.java diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/BatchConfiguration.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/BatchConfiguration.java index 80f6c1b21..481578d01 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/BatchConfiguration.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/BatchConfiguration.java @@ -61,9 +61,11 @@ import org.springframework.batch.core.configuration.annotation.EnableBatchProces import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.launch.support.RunIdIncrementer; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import javax.persistence.EntityManager; import javax.sql.DataSource; @Configuration @@ -75,6 +77,8 @@ public class BatchConfiguration final JobBuilderFactory jobBuilderFactory; final StepBuilderFactory stepBuilderFactory; + final EntityManager entityManager; + final DataSource primaryDataSource; final DestinationImageRepository destinationImageRepository; @@ -112,10 +116,11 @@ public class BatchConfiguration final DestinationTemplateGroupRepository destinationTemplateGroupRepository; @SuppressWarnings("squid:S107") - public BatchConfiguration(JobBuilderFactory jobBuilderFactory, StepBuilderFactory stepBuilderFactory, DataSource primaryDataSource, DestinationImageRepository destinationImageRepository, DestinationIconRepository destinationIconRepository, DestinationCategoryRepository destinationCategoryRepository, DestinationAccountRepository destinationAccountRepository, DestinationChartRepository destinationChartRepository, DestinationHintRepository destinationHintRepository, DestinationRepeatingEndRepository destinationRepeatingEndRepository, DestinationRepeatingEndAfterXTimesRepository destinationRepeatingEndAfterXTimesRepository, DestinationRepeatingEndDateRepository destinationRepeatingEndDateRepository, DestinationRepeatingEndNeverRepository destinationRepeatingEndNeverRepository, DestinationRepeatingModifierRepository destinationRepeatingModifierRepository, DestinationRepeatingModifierDaysRepository destinationRepeatingModifierDaysRepository, DestinationRepeatingModifierMonthsRepository destinationRepeatingModifierMonthsRepository, DestinationRepeatingModifierYearsRepository destinationRepeatingModifierYearsRepository, DestinationRepeatingOptionRepository destinationRepeatingOptionRepository, DestinationReportColumnRepository destinationReportColumnRepository, DestinationReportSettingsRepository destinationReportSettingsRepository, DestinationSettingsRepository destinationSettingsRepository, DestinationTagRepository destinationTagRepository, DestinationTemplateTagRepository destinationTemplateTagRepository, DestinationTransactionTagRepository destinationTransactionTagRepository, DestinationUserRepository destinationUserRepository, DestinationTransactionRepository destinationTransactionRepository, DestinationTemplateRepository destinationTemplateRepository, DestinationTemplateGroupRepository destinationTemplateGroupRepository) + public BatchConfiguration(JobBuilderFactory jobBuilderFactory, StepBuilderFactory stepBuilderFactory, EntityManager entityManager, DataSource primaryDataSource, DestinationImageRepository destinationImageRepository, DestinationIconRepository destinationIconRepository, DestinationCategoryRepository destinationCategoryRepository, DestinationAccountRepository destinationAccountRepository, DestinationChartRepository destinationChartRepository, DestinationHintRepository destinationHintRepository, DestinationRepeatingEndRepository destinationRepeatingEndRepository, DestinationRepeatingEndAfterXTimesRepository destinationRepeatingEndAfterXTimesRepository, DestinationRepeatingEndDateRepository destinationRepeatingEndDateRepository, DestinationRepeatingEndNeverRepository destinationRepeatingEndNeverRepository, DestinationRepeatingModifierRepository destinationRepeatingModifierRepository, DestinationRepeatingModifierDaysRepository destinationRepeatingModifierDaysRepository, DestinationRepeatingModifierMonthsRepository destinationRepeatingModifierMonthsRepository, DestinationRepeatingModifierYearsRepository destinationRepeatingModifierYearsRepository, DestinationRepeatingOptionRepository destinationRepeatingOptionRepository, DestinationReportColumnRepository destinationReportColumnRepository, DestinationReportSettingsRepository destinationReportSettingsRepository, DestinationSettingsRepository destinationSettingsRepository, DestinationTagRepository destinationTagRepository, DestinationTemplateTagRepository destinationTemplateTagRepository, DestinationTransactionTagRepository destinationTransactionTagRepository, DestinationUserRepository destinationUserRepository, DestinationTransactionRepository destinationTransactionRepository, DestinationTemplateRepository destinationTemplateRepository, DestinationTemplateGroupRepository destinationTemplateGroupRepository) { this.jobBuilderFactory = jobBuilderFactory; this.stepBuilderFactory = stepBuilderFactory; + this.entityManager = entityManager; this.primaryDataSource = primaryDataSource; this.destinationImageRepository = destinationImageRepository; @@ -266,7 +271,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationImageRepository)) .listener(new GenericChunkListener(TableNames.IMAGE)) - .listener(new GenericStepListener(TableNames.IMAGE)) + .listener(new GenericStepListener(TableNames.IMAGE, entityManager, destinationImageRepository)) .allowStartIfComplete(true) .build(); } @@ -280,7 +285,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationIconRepository)) .listener(new GenericChunkListener(TableNames.ICON)) - .listener(new GenericStepListener(TableNames.ICON)) + .listener(new GenericStepListener(TableNames.ICON, entityManager, destinationIconRepository)) .allowStartIfComplete(true) .build(); } @@ -294,7 +299,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationCategoryRepository)) .listener(new GenericChunkListener(TableNames.CATEGORY)) - .listener(new GenericStepListener(TableNames.CATEGORY)) + .listener(new GenericStepListener(TableNames.CATEGORY, entityManager, destinationCategoryRepository)) .allowStartIfComplete(true) .build(); } @@ -308,7 +313,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationAccountRepository)) .listener(new GenericChunkListener(TableNames.ACCOUNT)) - .listener(new GenericStepListener(TableNames.ACCOUNT)) + .listener(new GenericStepListener(TableNames.ACCOUNT, entityManager, destinationAccountRepository)) .allowStartIfComplete(true) .build(); } @@ -322,7 +327,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationChartRepository)) .listener(new GenericChunkListener(TableNames.CHART)) - .listener(new GenericStepListener(TableNames.CHART)) + .listener(new GenericStepListener(TableNames.CHART, entityManager, destinationChartRepository)) .allowStartIfComplete(true) .build(); } @@ -336,7 +341,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationHintRepository)) .listener(new GenericChunkListener(TableNames.HINT)) - .listener(new GenericStepListener(TableNames.HINT)) + .listener(new GenericStepListener(TableNames.HINT, entityManager, destinationHintRepository)) .allowStartIfComplete(true) .build(); } @@ -350,7 +355,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationRepeatingEndRepository)) .listener(new GenericChunkListener(TableNames.REPEATING_END)) - .listener(new GenericStepListener(TableNames.REPEATING_END)) + .listener(new GenericStepListener(TableNames.REPEATING_END, entityManager, destinationRepeatingEndRepository)) .allowStartIfComplete(true) .build(); } @@ -364,7 +369,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationRepeatingEndAfterXTimesRepository)) .listener(new GenericChunkListener(TableNames.REPEATING_END_AFTER_X_TIMES)) - .listener(new GenericStepListener(TableNames.REPEATING_END_AFTER_X_TIMES)) + .listener(new GenericStepListener(TableNames.REPEATING_END_AFTER_X_TIMES, entityManager, destinationRepeatingEndAfterXTimesRepository)) .allowStartIfComplete(true) .build(); } @@ -378,7 +383,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationRepeatingEndDateRepository)) .listener(new GenericChunkListener(TableNames.REPEATING_END_DATE)) - .listener(new GenericStepListener(TableNames.REPEATING_END_DATE)) + .listener(new GenericStepListener(TableNames.REPEATING_END_DATE, entityManager, destinationRepeatingEndDateRepository)) .allowStartIfComplete(true) .build(); } @@ -392,7 +397,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationRepeatingEndNeverRepository)) .listener(new GenericChunkListener(TableNames.REPEATING_END_NEVER)) - .listener(new GenericStepListener(TableNames.REPEATING_END_NEVER)) + .listener(new GenericStepListener(TableNames.REPEATING_END_NEVER, entityManager, destinationRepeatingEndNeverRepository)) .allowStartIfComplete(true) .build(); } @@ -406,7 +411,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationRepeatingModifierRepository)) .listener(new GenericChunkListener(TableNames.REPEATING_MODIFIER)) - .listener(new GenericStepListener(TableNames.REPEATING_MODIFIER)) + .listener(new GenericStepListener(TableNames.REPEATING_MODIFIER, entityManager, destinationRepeatingModifierRepository)) .allowStartIfComplete(true) .build(); } @@ -420,7 +425,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationRepeatingModifierDaysRepository)) .listener(new GenericChunkListener(TableNames.REPEATING_MODIFIER_DAYS)) - .listener(new GenericStepListener(TableNames.REPEATING_MODIFIER_DAYS)) + .listener(new GenericStepListener(TableNames.REPEATING_MODIFIER_DAYS, entityManager, destinationRepeatingModifierDaysRepository)) .allowStartIfComplete(true) .build(); } @@ -434,7 +439,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationRepeatingModifierMonthsRepository)) .listener(new GenericChunkListener(TableNames.REPEATING_MODIFIER_MONTHS)) - .listener(new GenericStepListener(TableNames.REPEATING_MODIFIER_MONTHS)) + .listener(new GenericStepListener(TableNames.REPEATING_MODIFIER_MONTHS, entityManager, destinationRepeatingModifierMonthsRepository)) .allowStartIfComplete(true) .build(); } @@ -448,7 +453,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationRepeatingModifierYearsRepository)) .listener(new GenericChunkListener(TableNames.REPEATING_MODIFIER_YEARS)) - .listener(new GenericStepListener(TableNames.REPEATING_MODIFIER_YEARS)) + .listener(new GenericStepListener(TableNames.REPEATING_MODIFIER_YEARS, entityManager, destinationRepeatingModifierYearsRepository)) .allowStartIfComplete(true) .build(); } @@ -462,7 +467,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationRepeatingOptionRepository)) .listener(new GenericChunkListener(TableNames.REPEATING_OPTION)) - .listener(new GenericStepListener(TableNames.REPEATING_OPTION)) + .listener(new GenericStepListener(TableNames.REPEATING_OPTION, entityManager, destinationRepeatingOptionRepository)) .allowStartIfComplete(true) .build(); } @@ -476,7 +481,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationReportColumnRepository)) .listener(new GenericChunkListener(TableNames.REPORT_COLUMN)) - .listener(new GenericStepListener(TableNames.REPORT_COLUMN)) + .listener(new GenericStepListener(TableNames.REPORT_COLUMN, entityManager, destinationReportColumnRepository)) .allowStartIfComplete(true) .build(); } @@ -490,7 +495,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationReportSettingsRepository)) .listener(new GenericChunkListener(TableNames.REPORT_SETTINGS)) - .listener(new GenericStepListener(TableNames.REPORT_SETTINGS)) + .listener(new GenericStepListener(TableNames.REPORT_SETTINGS, entityManager, destinationReportSettingsRepository)) .allowStartIfComplete(true) .build(); } @@ -504,7 +509,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationSettingsRepository)) .listener(new GenericChunkListener(TableNames.SETTINGS)) - .listener(new GenericStepListener(TableNames.SETTINGS)) + .listener(new GenericStepListener(TableNames.SETTINGS, entityManager, destinationSettingsRepository)) .allowStartIfComplete(true) .build(); } @@ -518,7 +523,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationTagRepository)) .listener(new GenericChunkListener(TableNames.TAG)) - .listener(new GenericStepListener(TableNames.TAG)) + .listener(new GenericStepListener(TableNames.TAG, entityManager, destinationTagRepository)) .allowStartIfComplete(true) .build(); } @@ -532,7 +537,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationTemplateTagRepository)) .listener(new GenericChunkListener(TableNames.TEMPLATE_TAGS)) - .listener(new GenericStepListener(TableNames.TEMPLATE_TAGS)) + .listener(new GenericStepListener(TableNames.TEMPLATE_TAGS, entityManager, destinationTemplateTagRepository)) .allowStartIfComplete(true) .build(); } @@ -546,7 +551,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationTransactionTagRepository)) .listener(new GenericChunkListener(TableNames.TRANSACTION_TAGS)) - .listener(new GenericStepListener(TableNames.TRANSACTION_TAGS)) + .listener(new GenericStepListener(TableNames.TRANSACTION_TAGS, entityManager, destinationTransactionTagRepository)) .allowStartIfComplete(true) .build(); } @@ -560,7 +565,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationUserRepository)) .listener(new GenericChunkListener(TableNames.USER_SOURCE)) - .listener(new GenericStepListener(TableNames.USER_SOURCE)) + .listener(new GenericStepListener(TableNames.USER_SOURCE, entityManager, destinationUserRepository)) .allowStartIfComplete(true) .build(); } @@ -574,7 +579,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationTransactionRepository)) .listener(new GenericChunkListener(TableNames.TRANSACTION)) - .listener(new GenericStepListener(TableNames.TRANSACTION)) + .listener(new GenericStepListener(TableNames.TRANSACTION, entityManager, destinationTransactionRepository)) .allowStartIfComplete(true) .build(); } @@ -588,7 +593,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationTemplateRepository)) .listener(new GenericChunkListener(TableNames.TEMPLATE)) - .listener(new GenericStepListener(TableNames.TEMPLATE)) + .listener(new GenericStepListener(TableNames.TEMPLATE, entityManager, destinationTemplateRepository)) .allowStartIfComplete(true) .build(); } @@ -602,7 +607,7 @@ public class BatchConfiguration .processor(new GenericDoNothingProcessor<>()) .writer(new GenericWriter<>(destinationTemplateGroupRepository)) .listener(new GenericChunkListener(TableNames.TEMPLATE_GROUP)) - .listener(new GenericStepListener(TableNames.TEMPLATE_GROUP)) + .listener(new GenericStepListener(TableNames.TEMPLATE_GROUP, entityManager, destinationTemplateGroupRepository)) .allowStartIfComplete(true) .build(); } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationRepository.java new file mode 100644 index 000000000..d596a4865 --- /dev/null +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/DestinationRepository.java @@ -0,0 +1,12 @@ +package de.deadlocker8.budgetmaster.databasemigrator.destination; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.NoRepositoryBean; + +import java.util.List; + +@NoRepositoryBean +public interface DestinationRepository<T> extends JpaRepository<T, Integer> +{ + List<T> findAllByOrderByIDDesc(); +} diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/ProvidesID.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/ProvidesID.java new file mode 100644 index 000000000..4a4d9a1dd --- /dev/null +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/ProvidesID.java @@ -0,0 +1,8 @@ +package de.deadlocker8.budgetmaster.databasemigrator.destination; + +public interface ProvidesID +{ + Integer getID(); + + void setID(Integer ID); +} diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccount.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccount.java index 61fac3f64..f11acc22b 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccount.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccount.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.account; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,10 +18,9 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationAccount +public class DestinationAccount implements ProvidesID { @Id - private Integer ID; @Column(unique = true) diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccountRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccountRepository.java index d5d730179..46c498e0b 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccountRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/account/DestinationAccountRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.account; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationAccountRepository extends JpaRepository<DestinationAccount, Integer> +public interface DestinationAccountRepository extends DestinationRepository<DestinationAccount> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategory.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategory.java index b2b43510c..c5dcc73d5 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategory.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategory.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.category; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,10 +18,9 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationCategory +public class DestinationCategory implements ProvidesID { @Id - private Integer ID; private String name; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategoryRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategoryRepository.java index 378d2b28f..01963b61c 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategoryRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/category/DestinationCategoryRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.category; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationCategoryRepository extends JpaRepository<DestinationCategory, Integer> +public interface DestinationCategoryRepository extends DestinationRepository<DestinationCategory> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChart.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChart.java index 944427a6a..b1bd4f51c 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChart.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChart.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.chart; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,7 +18,7 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationChart +public class DestinationChart implements ProvidesID { @Id private Integer ID; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChartRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChartRepository.java index e83c98f28..8e6fbc068 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChartRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/chart/DestinationChartRepository.java @@ -1,7 +1,8 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.chart; -import org.springframework.data.jpa.repository.JpaRepository; -public interface DestinationChartRepository extends JpaRepository<DestinationChart, Integer> +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; + +public interface DestinationChartRepository extends DestinationRepository<DestinationChart> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHint.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHint.java index 2b7597863..b21a01f4d 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHint.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHint.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.hint; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,11 +18,10 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationHint +public class DestinationHint implements ProvidesID { @Id - - private int ID; + private Integer ID; @Column(name = "localization_key") private String localizationKey; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHintRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHintRepository.java index 287ef5575..ca1e35066 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHintRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/hint/DestinationHintRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.hint; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationHintRepository extends JpaRepository<DestinationHint, Integer> +public interface DestinationHintRepository extends DestinationRepository<DestinationHint> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIcon.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIcon.java index 7f0eafda6..a583b68c3 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIcon.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIcon.java @@ -1,5 +1,6 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.icon; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -16,10 +17,9 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationIcon +public class DestinationIcon implements ProvidesID { @Id - private Integer ID; @Column(name = "image_id") diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIconRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIconRepository.java index 95db00154..e74ad50d6 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIconRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/icon/DestinationIconRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.icon; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationIconRepository extends JpaRepository<DestinationIcon, Integer> +public interface DestinationIconRepository extends DestinationRepository<DestinationIcon> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImage.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImage.java index 70eb14e3f..9794f25b0 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImage.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImage.java @@ -1,5 +1,6 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.image; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -13,7 +14,7 @@ import javax.persistence.*; @Setter @EqualsAndHashCode @ToString -public class DestinationImage +public class DestinationImage implements ProvidesID { @Id private Integer ID; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImageRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImageRepository.java index 0d8835ab2..f70ffd68d 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImageRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/image/DestinationImageRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.image; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationImageRepository extends JpaRepository<DestinationImage, Integer> +public interface DestinationImageRepository extends DestinationRepository<DestinationImage> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOption.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOption.java index 3fdf7ec65..1f1d1d40d 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOption.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOption.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -18,7 +19,7 @@ import java.time.LocalDate; @Setter @EqualsAndHashCode @ToString -public class DestinationRepeatingOption +public class DestinationRepeatingOption implements ProvidesID { @Id private Integer ID; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOptionRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOptionRepository.java index 918d027d3..b50e61114 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOptionRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/DestinationRepeatingOptionRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationRepeatingOptionRepository extends JpaRepository<DestinationRepeatingOption, Integer> +public interface DestinationRepeatingOptionRepository extends DestinationRepository<DestinationRepeatingOption> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEnd.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEnd.java index 4fd05a4d9..c61580dab 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEnd.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEnd.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,7 +18,7 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationRepeatingEnd +public class DestinationRepeatingEnd implements ProvidesID { @Id diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimes.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimes.java index 3497e3661..ec2e912f6 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimes.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimes.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -16,7 +17,7 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationRepeatingEndAfterXTimes +public class DestinationRepeatingEndAfterXTimes implements ProvidesID { @Id diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimesRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimesRepository.java index 842105548..68a6fb459 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimesRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndAfterXTimesRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationRepeatingEndAfterXTimesRepository extends JpaRepository<DestinationRepeatingEndAfterXTimes, Integer> +public interface DestinationRepeatingEndAfterXTimesRepository extends DestinationRepository<DestinationRepeatingEndAfterXTimes> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDate.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDate.java index efe4b2e6b..c3945ae83 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDate.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDate.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -18,7 +19,7 @@ import java.time.LocalDate; @Setter @EqualsAndHashCode @ToString -public class DestinationRepeatingEndDate +public class DestinationRepeatingEndDate implements ProvidesID { @Id diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDateRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDateRepository.java index 0397e0d2b..c056605c1 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDateRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndDateRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationRepeatingEndDateRepository extends JpaRepository<DestinationRepeatingEndDate, Integer> +public interface DestinationRepeatingEndDateRepository extends DestinationRepository<DestinationRepeatingEndDate> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNever.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNever.java index 54b2c40e4..e76c89238 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNever.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNever.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -16,7 +17,7 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationRepeatingEndNever +public class DestinationRepeatingEndNever implements ProvidesID { @Id diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNeverRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNeverRepository.java index 2f1b5f5c3..c39b24f5b 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNeverRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndNeverRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationRepeatingEndNeverRepository extends JpaRepository<DestinationRepeatingEndNever, Integer> +public interface DestinationRepeatingEndNeverRepository extends DestinationRepository<DestinationRepeatingEndNever> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndRepository.java index cdd307709..482d78022 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/end/DestinationRepeatingEndRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.end; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationRepeatingEndRepository extends JpaRepository<DestinationRepeatingEnd, Integer> +public interface DestinationRepeatingEndRepository extends DestinationRepository<DestinationRepeatingEnd> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifier.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifier.java index 1b206fce5..3e6dcca0e 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifier.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifier.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,10 +18,9 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationRepeatingModifier +public class DestinationRepeatingModifier implements ProvidesID { @Id - private Integer ID; @Column(name = "localization_key") diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDays.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDays.java index f3fa0e5fc..1a9486ada 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDays.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDays.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -16,9 +17,8 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationRepeatingModifierDays +public class DestinationRepeatingModifierDays implements ProvidesID { @Id - private Integer ID; } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDaysRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDaysRepository.java index 7a9e0f83a..3f0a0a621 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDaysRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierDaysRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationRepeatingModifierDaysRepository extends JpaRepository<DestinationRepeatingModifierDays, Integer> +public interface DestinationRepeatingModifierDaysRepository extends DestinationRepository<DestinationRepeatingModifierDays> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonths.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonths.java index 2b1321b6b..5c974fa8f 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonths.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonths.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -16,9 +17,8 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationRepeatingModifierMonths +public class DestinationRepeatingModifierMonths implements ProvidesID { @Id - private Integer ID; } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonthsRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonthsRepository.java index e396513e6..c9c957f16 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonthsRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierMonthsRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationRepeatingModifierMonthsRepository extends JpaRepository<DestinationRepeatingModifierMonths, Integer> +public interface DestinationRepeatingModifierMonthsRepository extends DestinationRepository<DestinationRepeatingModifierMonths> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierRepository.java index eef52665e..f6318d1e2 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationRepeatingModifierRepository extends JpaRepository<DestinationRepeatingModifier, Integer> +public interface DestinationRepeatingModifierRepository extends DestinationRepository<DestinationRepeatingModifier> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYears.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYears.java index 934a3bfb5..2e5188021 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYears.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYears.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -16,9 +17,8 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationRepeatingModifierYears +public class DestinationRepeatingModifierYears implements ProvidesID { @Id - private Integer ID; } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYearsRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYearsRepository.java index 29e7596f1..d6019bba6 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYearsRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/repeating/modifier/DestinationRepeatingModifierYearsRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.repeating.modifier; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationRepeatingModifierYearsRepository extends JpaRepository<DestinationRepeatingModifierYears, Integer> +public interface DestinationRepeatingModifierYearsRepository extends DestinationRepository<DestinationRepeatingModifierYears> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumn.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumn.java index 6ded44721..4149e7f19 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumn.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumn.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.report; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,10 +18,10 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationReportColumn +public class DestinationReportColumn implements ProvidesID { @Id - private int ID; + private Integer ID; private boolean activated; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumnRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumnRepository.java index de7966899..daf4b76c5 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumnRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportColumnRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.report; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationReportColumnRepository extends JpaRepository<DestinationReportColumn, Integer> +public interface DestinationReportColumnRepository extends DestinationRepository<DestinationReportColumn> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettings.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettings.java index e06ac4c63..609172157 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettings.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettings.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.report; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -18,10 +19,10 @@ import java.time.LocalDate; @Setter @EqualsAndHashCode @ToString -public class DestinationReportSettings +public class DestinationReportSettings implements ProvidesID { @Id - private int ID; + private Integer ID; private LocalDate date; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettingsRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettingsRepository.java index 668b603b8..f7bc7a176 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettingsRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/report/DestinationReportSettingsRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.report; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationReportSettingsRepository extends JpaRepository<DestinationReportSettings, Integer> +public interface DestinationReportSettingsRepository extends DestinationRepository<DestinationReportSettings> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettings.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettings.java index eabc7ae79..ca256f96c 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettings.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettings.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.settings; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -18,10 +19,10 @@ import java.time.LocalDate; @Setter @EqualsAndHashCode @ToString -public class DestinationSettings +public class DestinationSettings implements ProvidesID { @Id - private int ID; + private Integer ID; private String currency; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettingsRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettingsRepository.java index dd08ae9d2..1d2d32ec4 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettingsRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/settings/DestinationSettingsRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.settings; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationSettingsRepository extends JpaRepository<DestinationSettings, Integer> +public interface DestinationSettingsRepository extends DestinationRepository<DestinationSettings> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTag.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTag.java index fe74791b5..fb757f694 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTag.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTag.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.tag; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -16,11 +17,10 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationTag +public class DestinationTag implements ProvidesID { @Id - - private int ID; + private Integer ID; private String name; } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTagRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTagRepository.java index b6de84436..4fafa724e 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTagRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTagRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.tag; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationTagRepository extends JpaRepository<DestinationTag, Integer> +public interface DestinationTagRepository extends DestinationRepository<DestinationTag> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTag.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTag.java index 24711155e..e328392e6 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTag.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTag.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.tag; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,10 +18,10 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationTemplateTag +public class DestinationTemplateTag implements ProvidesID { @Id - private int ID; + private Integer ID; @Column(name = "template_id") private int templateID; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTagRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTagRepository.java index 4631ff716..007b81ccd 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTagRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTemplateTagRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.tag; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationTemplateTagRepository extends JpaRepository<DestinationTemplateTag, Integer> +public interface DestinationTemplateTagRepository extends DestinationRepository<DestinationTemplateTag> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTag.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTag.java index 73e2e59be..a76280ea4 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTag.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTag.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.tag; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,10 +18,10 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationTransactionTag +public class DestinationTransactionTag implements ProvidesID { @Id - private int ID; + private Integer ID; @Column(name = "transaction_id") private int transactionID; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTagRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTagRepository.java index d08722f41..28ec52f20 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTagRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/tag/DestinationTransactionTagRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.tag; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationTransactionTagRepository extends JpaRepository<DestinationTransactionTag, Integer> +public interface DestinationTransactionTagRepository extends DestinationRepository<DestinationTransactionTag> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplate.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplate.java index 8eec44ca3..de35e361f 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplate.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplate.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.template; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,10 +18,10 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationTemplate +public class DestinationTemplate implements ProvidesID { @Id - private int ID; + private Integer ID; @Column(name = "template_name") private String templateName; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplateRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplateRepository.java index b59666375..842f83897 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplateRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/template/DestinationTemplateRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.template; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationTemplateRepository extends JpaRepository<DestinationTemplate, Integer> +public interface DestinationTemplateRepository extends DestinationRepository<DestinationTemplate> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroup.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroup.java index e2f37b6d2..0eb5e7aed 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroup.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroup.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.templateGroup; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -16,10 +17,10 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationTemplateGroup +public class DestinationTemplateGroup implements ProvidesID { @Id - private int ID; + private Integer ID; private String name; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroupRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroupRepository.java index 4f25f8607..8bc5b0f0e 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroupRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/templateGroup/DestinationTemplateGroupRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.templateGroup; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationTemplateGroupRepository extends JpaRepository<DestinationTemplateGroup, Integer> +public interface DestinationTemplateGroupRepository extends DestinationRepository<DestinationTemplateGroup> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransaction.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransaction.java index b8fbe8f4d..0b62f6931 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransaction.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransaction.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.transaction; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -18,10 +19,10 @@ import java.time.LocalDate; @Setter @EqualsAndHashCode @ToString -public class DestinationTransaction +public class DestinationTransaction implements ProvidesID { @Id - private int ID; + private Integer ID; private Integer amount; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransactionRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransactionRepository.java index dcd594a9d..32c7fe813 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransactionRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/transaction/DestinationTransactionRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.transaction; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationTransactionRepository extends JpaRepository<DestinationTransaction, Integer> +public interface DestinationTransactionRepository extends DestinationRepository<DestinationTransaction> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUser.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUser.java index 9e56f602f..75ef2fe45 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUser.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUser.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.user; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import de.deadlocker8.budgetmaster.databasemigrator.destination.TableNames; import lombok.*; @@ -17,11 +18,10 @@ import javax.persistence.Table; @Setter @EqualsAndHashCode @ToString -public class DestinationUser +public class DestinationUser implements ProvidesID { @Id - - private int ID; + private Integer ID; private String name; diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUserRepository.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUserRepository.java index 6586eb548..1fe6dfeab 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUserRepository.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/destination/user/DestinationUserRepository.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.destination.user; -import org.springframework.data.jpa.repository.JpaRepository; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; -public interface DestinationUserRepository extends JpaRepository<DestinationUser, Integer> +public interface DestinationUserRepository extends DestinationRepository<DestinationUser> { } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java index 0553b492b..2dd0f3522 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java @@ -1,35 +1,71 @@ package de.deadlocker8.budgetmaster.databasemigrator.listener; +import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; import de.deadlocker8.budgetmaster.databasemigrator.Utils; +import de.deadlocker8.budgetmaster.databasemigrator.destination.ProvidesID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.batch.core.ExitStatus; import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.StepExecutionListener; +import org.springframework.transaction.annotation.Transactional; -public class GenericStepListener implements StepExecutionListener +import javax.persistence.EntityManager; +import java.text.MessageFormat; +import java.util.List; + +public class GenericStepListener<T extends ProvidesID> implements StepExecutionListener { private static final Logger LOGGER = LoggerFactory.getLogger(GenericStepListener.class); - private final String itemName; + private final String tableName; + private final EntityManager entityManager; + private final DestinationRepository<T> repository; - public GenericStepListener(String itemName) + public GenericStepListener(String tableName, EntityManager entityManager, DestinationRepository<T> repository) { - this.itemName = itemName; + this.tableName = tableName; + this.entityManager = entityManager; + this.repository = repository; } @Override + @Transactional public void beforeStep(StepExecution stepExecution) { LOGGER.info("\n"); - LOGGER.info(">>> Migrate {}s...", itemName); + LOGGER.info(">>> Migrate {}s...", tableName); + + LOGGER.debug("Resetting sequence to 0"); + entityManager.createNativeQuery(MessageFormat.format("ALTER SEQUENCE {0}_id_seq RESTART WITH 1", tableName)) + .executeUpdate(); } @Override + @Transactional public ExitStatus afterStep(StepExecution stepExecution) { final int count = Utils.getCommitCount(stepExecution); - LOGGER.info(">>> Successfully migrated {} {}s\n", count, itemName); + LOGGER.info(">>> Successfully migrated {} {}s\n", count, tableName); + + final int highestUsedID = getHighestUsedID(); + final int newSequence = highestUsedID + 1; + LOGGER.debug("Adjusting sequence to {} ({})", newSequence, highestUsedID); + entityManager.createNativeQuery(MessageFormat.format("ALTER SEQUENCE {0}_id_seq RESTART WITH {1}}", tableName, newSequence)) + .executeUpdate(); + return null; } + + public int getHighestUsedID() + { + final List<T> itemsOrderedByID = repository.findAllByOrderByIDDesc(); + if(itemsOrderedByID.isEmpty()) + { + return 0; + } + + return itemsOrderedByID.get(0).getID(); + } + } diff --git a/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/UpdateSequencesTest.java b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/UpdateSequencesTest.java new file mode 100644 index 000000000..fd5824b0e --- /dev/null +++ b/BudgetMasterDatabaseMigrator/src/test/java/de/deadlocker8/budgetmaster/databasemigrator/UpdateSequencesTest.java @@ -0,0 +1,67 @@ +package de.deadlocker8.budgetmaster.databasemigrator; + +import de.deadlocker8.budgetmaster.databasemigrator.destination.StepNames; +import de.deadlocker8.budgetmaster.databasemigrator.destination.category.DestinationCategory; +import de.deadlocker8.budgetmaster.databasemigrator.destination.category.DestinationCategoryRepository; +import org.junit.jupiter.api.Test; +import org.springframework.batch.core.ExitStatus; +import org.springframework.batch.core.JobExecution; +import org.springframework.batch.core.StepExecution; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.Primary; +import org.springframework.core.io.Resource; + +import javax.sql.DataSource; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +@Import(UpdateSequencesTest.TestDatabaseConfiguration.class) +@EnableAutoConfiguration +class UpdateSequencesTest extends MigratorTestBase +{ + @TestConfiguration + static class TestDatabaseConfiguration + { + @Value("classpath:categories.mv.db") + private Resource databaseResource; + + @Bean(name = "primaryDataSource") + @Primary + public DataSource dataSource() throws IOException + { + final String folderName = databaseResource.getFile().getAbsolutePath().replace(".mv.db", ""); + String jdbcString = "jdbc:h2:/" + folderName + ";DB_CLOSE_ON_EXIT=TRUE"; + return DataSourceBuilder.create().username("sa").password("").url(jdbcString).driverClassName("org.h2.Driver").build(); + } + } + + @Autowired + private DestinationCategoryRepository categoryRepository; + + @Test + void test_updateSequences() + { + final JobExecution jobExecution = jobLauncherTestUtils.launchStep(StepNames.CATEGORIES, DEFAULT_JOB_PARAMETERS); + final List<StepExecution> stepExecutions = new ArrayList<>(jobExecution.getStepExecutions()); + + assertThat(jobExecution.getExitStatus()).isEqualTo(ExitStatus.COMPLETED); + + assertThat(stepExecutions).hasSize(1); + final StepExecution stepExecution = stepExecutions.get(0); + assertThat(stepExecution.getReadCount()).isEqualTo(5); + assertThat(stepExecution.getCommitCount()).isEqualTo(6); + + final List<DestinationCategory> categoriesOrderedById = categoryRepository.findAllByOrderByIDDesc(); + final DestinationCategory savedCategory = categoryRepository.save(new DestinationCategory(null, "New One", "#ffffff", 0, null)); + assertThat(savedCategory.getID()).isEqualTo(categoriesOrderedById.get(0).getID() + 1); + } +} \ No newline at end of file -- GitLab