You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by vo...@apache.org on 2020/04/07 21:46:28 UTC

[fineract] branch develop updated (d0c8c6a -> beee2e5)

This is an automated email from the ASF dual-hosted git repository.

vorburger pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git.


    from d0c8c6a  FINERACT-538 populated updated and created address
     new ae41170  add missing doc to AbstractPersistableCustom & AbstractAuditableCustom
     new dccea1d  add @Transient to AbstractPersistableCustom isNew()
     new 09d0cfa  Remove AbstractPersistableCustom's PK parameterization
     new beee2e5  Fixed: Checkstyle Violations

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../accounting/closure/domain/GLClosure.java       |  3 +-
 .../domain/FinancialActivityAccount.java           |  2 +-
 .../accounting/glaccount/domain/GLAccount.java     |  2 +-
 .../accounting/glaccount/domain/TrialBalance.java  |  2 +-
 .../journalentry/domain/JournalEntry.java          |  3 +-
 .../domain/ProductToGLAccountMapping.java          |  2 +-
 .../domain/LoanProductProvisioningEntry.java       |  2 +-
 .../provisioning/domain/ProvisioningEntry.java     |  2 +-
 .../accounting/rule/domain/AccountingRule.java     |  2 +-
 .../accounting/rule/domain/AccountingTagRule.java  |  2 +-
 .../apache/fineract/adhocquery/domain/AdHoc.java   |  3 +-
 .../fineract/commands/domain/CommandSource.java    |  2 +-
 .../domain/AccountNumberFormat.java                |  2 +-
 .../bulkimport/domain/ImportDocument.java          |  2 +-
 .../infrastructure/cache/domain/PlatformCache.java |  2 +-
 .../campaigns/email/domain/EmailCampaign.java      |  2 +-
 .../campaigns/email/domain/EmailConfiguration.java |  2 +-
 .../campaigns/email/domain/EmailMessage.java       |  2 +-
 .../campaigns/sms/domain/SmsCampaign.java          |  2 +-
 .../fineract/infrastructure/codes/domain/Code.java |  2 +-
 .../infrastructure/codes/domain/CodeValue.java     |  2 +-
 .../configuration/domain/ExternalService.java      |  2 +-
 .../domain/GlobalConfigurationProperty.java        |  2 +-
 .../core/domain/AbstractAuditableCustom.java       | 54 ++--------------------
 .../core/domain/AbstractPersistableCustom.java     | 49 ++++++++++++--------
 .../creditbureau/domain/CreditBureau.java          |  2 +-
 .../domain/CreditBureauConfiguration.java          |  2 +-
 .../domain/CreditBureauLoanProductMapping.java     |  2 +-
 .../domain/OrganisationCreditBureau.java           |  2 +-
 .../dataqueries/domain/EntityDatatableChecks.java  |  2 +-
 .../infrastructure/dataqueries/domain/Report.java  |  2 +-
 .../dataqueries/domain/ReportParameter.java        |  2 +-
 .../dataqueries/domain/ReportParameterUsage.java   |  2 +-
 .../documentmanagement/domain/Document.java        |  2 +-
 .../documentmanagement/domain/Image.java           |  2 +-
 .../entityaccess/domain/FineractEntityAccess.java  |  2 +-
 .../domain/FineractEntityRelation.java             |  2 +-
 .../domain/FineractEntityToEntityMapping.java      |  2 +-
 .../gcm/domain/DeviceRegistration.java             |  2 +-
 .../fineract/infrastructure/hooks/domain/Hook.java |  3 +-
 .../hooks/domain/HookConfiguration.java            |  2 +-
 .../infrastructure/hooks/domain/HookResource.java  |  2 +-
 .../infrastructure/hooks/domain/HookTemplate.java  |  2 +-
 .../infrastructure/hooks/domain/Schema.java        |  2 +-
 .../infrastructure/jobs/domain/JobParameter.java   |  2 +-
 .../jobs/domain/ScheduledJobDetail.java            |  2 +-
 .../jobs/domain/ScheduledJobRunHistory.java        |  2 +-
 .../jobs/domain/SchedulerDetail.java               |  2 +-
 .../reportmailingjob/domain/ReportMailingJob.java  |  2 +-
 .../domain/ReportMailingJobConfiguration.java      |  2 +-
 .../domain/ReportMailingJobRunHistory.java         |  2 +-
 .../security/domain/TFAccessToken.java             |  2 +-
 .../security/domain/TwoFactorConfiguration.java    |  2 +-
 .../infrastructure/sms/domain/SmsMessage.java      |  2 +-
 .../infrastructure/survey/domain/Likelihood.java   |  2 +-
 .../interoperation/domain/InteropIdentifier.java   |  2 +-
 .../fineract/mix/domain/MixTaxonomyMapping.java    |  2 +-
 .../fineract/notification/domain/Notification.java |  2 +-
 .../notification/domain/NotificationMapper.java    |  2 +-
 .../apache/fineract/notification/domain/Topic.java |  2 +-
 .../notification/domain/TopicSubscriber.java       |  2 +-
 .../organisation/holiday/domain/Holiday.java       |  2 +-
 .../monetary/domain/ApplicationCurrency.java       |  2 +-
 .../organisation/office/domain/Office.java         |  2 +-
 .../office/domain/OfficeTransaction.java           |  2 +-
 .../office/domain/OrganisationCurrency.java        |  2 +-
 .../domain/LoanProductProvisionCriteria.java       |  2 +-
 .../provisioning/domain/ProvisioningCategory.java  |  2 +-
 .../provisioning/domain/ProvisioningCriteria.java  |  2 +-
 .../domain/ProvisioningCriteriaDefinition.java     |  2 +-
 .../fineract/organisation/staff/domain/Staff.java  |  2 +-
 .../organisation/teller/domain/Cashier.java        |  2 +-
 .../teller/domain/CashierTransaction.java          |  2 +-
 .../organisation/teller/domain/Teller.java         |  2 +-
 .../teller/domain/TellerTransaction.java           |  2 +-
 .../workingdays/domain/WorkingDays.java            |  2 +-
 .../account/domain/AccountAssociations.java        |  2 +-
 .../account/domain/AccountTransferDetails.java     |  2 +-
 .../domain/AccountTransferStandingInstruction.java |  2 +-
 .../account/domain/AccountTransferTransaction.java |  2 +-
 .../fineract/portfolio/address/domain/Address.java |  2 +-
 .../address/domain/FieldConfiguration.java         |  2 +-
 .../portfolio/calendar/domain/Calendar.java        |  3 +-
 .../portfolio/calendar/domain/CalendarHistory.java |  2 +-
 .../calendar/domain/CalendarInstance.java          |  2 +-
 .../fineract/portfolio/charge/domain/Charge.java   |  2 +-
 .../fineract/portfolio/client/domain/Client.java   |  2 +-
 .../portfolio/client/domain/ClientAddress.java     |  2 +-
 .../portfolio/client/domain/ClientCharge.java      |  2 +-
 .../client/domain/ClientChargePaidBy.java          |  2 +-
 .../client/domain/ClientFamilyMembers.java         |  2 +-
 .../portfolio/client/domain/ClientIdentifier.java  |  3 +-
 .../portfolio/client/domain/ClientNonPerson.java   |  2 +-
 .../portfolio/client/domain/ClientTransaction.java |  2 +-
 .../client/domain/ClientTransferDetails.java       |  2 +-
 .../collateral/domain/LoanCollateral.java          |  2 +-
 .../floatingrates/domain/FloatingRate.java         |  2 +-
 .../floatingrates/domain/FloatingRatePeriod.java   |  2 +-
 .../fineract/portfolio/fund/domain/Fund.java       |  2 +-
 .../fineract/portfolio/group/domain/Group.java     |  2 +-
 .../portfolio/group/domain/GroupLevel.java         |  2 +-
 .../fineract/portfolio/group/domain/GroupRole.java |  2 +-
 .../group/domain/StaffAssignmentHistory.java       |  3 +-
 .../domain/InterestIncentives.java                 |  2 +-
 .../domain/InterestRateChart.java                  |  2 +-
 .../domain/InterestRateChartSlab.java              |  2 +-
 .../portfolio/loanaccount/domain/Loan.java         |  2 +-
 .../portfolio/loanaccount/domain/LoanCharge.java   |  2 +-
 .../loanaccount/domain/LoanChargePaidBy.java       |  2 +-
 .../domain/LoanDisbursementDetails.java            |  2 +-
 .../loanaccount/domain/LoanInstallmentCharge.java  |  2 +-
 ...LoanInterestRecalcualtionAdditionalDetails.java |  2 +-
 .../domain/LoanInterestRecalculationDetails.java   |  2 +-
 .../domain/LoanOfficerAssignmentHistory.java       |  3 +-
 .../domain/LoanOverdueInstallmentCharge.java       |  2 +-
 .../domain/LoanRepaymentScheduleInstallment.java   |  3 +-
 ...oanRescheduleRequestToTermVariationMapping.java |  2 +-
 .../loanaccount/domain/LoanTermVariations.java     |  2 +-
 .../loanaccount/domain/LoanTopupDetails.java       |  2 +-
 .../loanaccount/domain/LoanTrancheCharge.java      |  2 +-
 .../domain/LoanTrancheDisbursementCharge.java      |  2 +-
 .../loanaccount/domain/LoanTransaction.java        |  2 +-
 .../LoanTransactionToRepaymentScheduleMapping.java |  2 +-
 .../loanaccount/guarantor/domain/Guarantor.java    |  2 +-
 .../guarantor/domain/GuarantorFundingDetails.java  |  2 +-
 .../domain/GuarantorFundingTransaction.java        |  2 +-
 .../domain/LoanRepaymentScheduleHistory.java       |  2 +-
 .../domain/LoanRescheduleRequest.java              |  2 +-
 .../portfolio/loanproduct/domain/LoanProduct.java  |  2 +-
 .../domain/LoanProductBorrowerCycleVariations.java |  2 +-
 .../domain/LoanProductConfigurableAttributes.java  |  2 +-
 .../domain/LoanProductFloatingRates.java           |  2 +-
 .../domain/LoanProductGuaranteeDetails.java        |  2 +-
 .../LoanProductInterestRecalculationDetails.java   |  2 +-
 .../LoanProductVariableInstallmentConfig.java      |  2 +-
 .../domain/LoanTransactionProcessingStrategy.java  |  2 +-
 .../loanproduct/productmix/domain/ProductMix.java  |  2 +-
 .../attendance/domain/ClientAttendance.java        |  2 +-
 .../fineract/portfolio/meeting/domain/Meeting.java |  2 +-
 .../fineract/portfolio/note/domain/Note.java       |  3 +-
 .../paymentdetail/domain/PaymentDetail.java        |  2 +-
 .../portfolio/paymenttype/domain/PaymentType.java  |  2 +-
 .../fineract/portfolio/rate/domain/Rate.java       |  2 +-
 .../domain/DepositAccountInterestIncentive.java    |  2 +-
 .../domain/DepositAccountInterestIncentives.java   |  2 +-
 .../domain/DepositAccountInterestRateChart.java    |  2 +-
 .../DepositAccountInterestRateChartSlabs.java      |  2 +-
 .../domain/DepositAccountOnHoldTransaction.java    |  2 +-
 .../domain/DepositAccountRecurringDetail.java      |  2 +-
 .../domain/DepositAccountTermAndPreClosure.java    |  2 +-
 .../domain/DepositProductRecurringDetail.java      |  2 +-
 .../domain/DepositProductTermAndPreClosure.java    |  2 +-
 .../RecurringDepositScheduleInstallment.java       |  3 +-
 .../portfolio/savings/domain/SavingsAccount.java   |  2 +-
 .../savings/domain/SavingsAccountCharge.java       |  2 +-
 .../savings/domain/SavingsAccountChargePaidBy.java |  2 +-
 .../savings/domain/SavingsAccountTransaction.java  |  2 +-
 .../SavingsAccountTransactionTaxDetails.java       |  2 +-
 .../domain/SavingsOfficerAssignmentHistory.java    |  3 +-
 .../portfolio/savings/domain/SavingsProduct.java   |  2 +-
 .../self/account/domain/SelfBeneficiariesTPT.java  |  2 +-
 .../portfolio/self/pockets/domain/Pocket.java      |  2 +-
 .../self/pockets/domain/PocketAccountMapping.java  |  2 +-
 .../domain/SelfServiceRegistration.java            |  2 +-
 .../shareaccounts/domain/ShareAccount.java         |  2 +-
 .../shareaccounts/domain/ShareAccountCharge.java   |  2 +-
 .../domain/ShareAccountChargePaidBy.java           |  2 +-
 .../domain/ShareAccountDividendDetails.java        |  2 +-
 .../domain/ShareAccountTransaction.java            |  2 +-
 .../shareproducts/domain/ShareProduct.java         |  2 +-
 .../domain/ShareProductDividendPayOutDetails.java  |  3 +-
 .../domain/ShareProductMarketPrice.java            |  2 +-
 .../portfolio/tax/domain/TaxComponent.java         |  3 +-
 .../portfolio/tax/domain/TaxComponentHistory.java  |  3 +-
 .../fineract/portfolio/tax/domain/TaxGroup.java    |  3 +-
 .../portfolio/tax/domain/TaxGroupMappings.java     |  3 +-
 .../org/apache/fineract/spm/domain/Component.java  |  2 +-
 .../apache/fineract/spm/domain/LookupTable.java    |  2 +-
 .../org/apache/fineract/spm/domain/Question.java   |  2 +-
 .../org/apache/fineract/spm/domain/Response.java   |  2 +-
 .../org/apache/fineract/spm/domain/Scorecard.java  |  2 +-
 .../org/apache/fineract/spm/domain/Survey.java     |  2 +-
 .../apache/fineract/template/domain/Template.java  |  2 +-
 .../fineract/template/domain/TemplateMapper.java   |  2 +-
 .../useradministration/domain/AppUser.java         |  2 +-
 .../domain/AppUserClientMapping.java               |  2 +-
 .../domain/AppUserPreviousPassword.java            |  2 +-
 .../domain/PasswordValidationPolicy.java           |  2 +-
 .../useradministration/domain/Permission.java      |  2 +-
 .../fineract/useradministration/domain/Role.java   |  2 +-
 190 files changed, 220 insertions(+), 276 deletions(-)


[fineract] 02/04: add @Transient to AbstractPersistableCustom isNew()

Posted by vo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vorburger pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git

commit dccea1d65e5a37fb7ca98b470f9ae418c6e8f6d6
Author: Michael Vorburger <mi...@vorburger.ch>
AuthorDate: Mon Mar 23 01:33:22 2020 +0100

    add @Transient to AbstractPersistableCustom isNew()
    
    see https://jira.spring.io/browse/DATAJPA-622
    
    Even though we don't use Hibernate, copying this annotation from the
    original class in Spring Data seems prudent - just in case.  It should
    not cause any harm or side effects on OpenJPA.
---
 .../fineract/infrastructure/core/domain/AbstractPersistableCustom.java  | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java
index 6a16c3d..1670922 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java
@@ -23,6 +23,7 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.MappedSuperclass;
+import javax.persistence.Transient;
 import org.springframework.data.domain.Persistable;
 
 /**
@@ -55,6 +56,7 @@ public abstract class AbstractPersistableCustom<PK extends Serializable> impleme
     }
 
     @Override
+    @Transient // DATAJPA-622
     public boolean isNew() {
         return null == this.id;
     }


[fineract] 03/04: Remove AbstractPersistableCustom's PK parameterization

Posted by vo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vorburger pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git

commit 09d0cfaa521eaeca82e1be27ee15e7219796fb24
Author: Michael Vorburger <mi...@vorburger.ch>
AuthorDate: Mon Mar 23 01:42:08 2020 +0100

    Remove AbstractPersistableCustom's PK parameterization
    
    Because both are pointless, as the PK @Id is hard-coded to Long anyway,
    and the U is (rightfully) fixed to always be an AppUser here.
---
 .../java/org/apache/fineract/accounting/closure/domain/GLClosure.java  | 2 +-
 .../financialactivityaccount/domain/FinancialActivityAccount.java      | 2 +-
 .../org/apache/fineract/accounting/glaccount/domain/GLAccount.java     | 2 +-
 .../org/apache/fineract/accounting/glaccount/domain/TrialBalance.java  | 2 +-
 .../apache/fineract/accounting/journalentry/domain/JournalEntry.java   | 2 +-
 .../producttoaccountmapping/domain/ProductToGLAccountMapping.java      | 2 +-
 .../accounting/provisioning/domain/LoanProductProvisioningEntry.java   | 2 +-
 .../fineract/accounting/provisioning/domain/ProvisioningEntry.java     | 2 +-
 .../org/apache/fineract/accounting/rule/domain/AccountingRule.java     | 2 +-
 .../org/apache/fineract/accounting/rule/domain/AccountingTagRule.java  | 2 +-
 .../src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java     | 2 +-
 .../main/java/org/apache/fineract/commands/domain/CommandSource.java   | 2 +-
 .../infrastructure/accountnumberformat/domain/AccountNumberFormat.java | 2 +-
 .../fineract/infrastructure/bulkimport/domain/ImportDocument.java      | 2 +-
 .../org/apache/fineract/infrastructure/cache/domain/PlatformCache.java | 2 +-
 .../fineract/infrastructure/campaigns/email/domain/EmailCampaign.java  | 2 +-
 .../infrastructure/campaigns/email/domain/EmailConfiguration.java      | 2 +-
 .../fineract/infrastructure/campaigns/email/domain/EmailMessage.java   | 2 +-
 .../fineract/infrastructure/campaigns/sms/domain/SmsCampaign.java      | 2 +-
 .../java/org/apache/fineract/infrastructure/codes/domain/Code.java     | 2 +-
 .../org/apache/fineract/infrastructure/codes/domain/CodeValue.java     | 2 +-
 .../fineract/infrastructure/configuration/domain/ExternalService.java  | 2 +-
 .../configuration/domain/GlobalConfigurationProperty.java              | 2 +-
 .../fineract/infrastructure/core/domain/AbstractAuditableCustom.java   | 3 +--
 .../fineract/infrastructure/core/domain/AbstractPersistableCustom.java | 2 +-
 .../fineract/infrastructure/creditbureau/domain/CreditBureau.java      | 2 +-
 .../infrastructure/creditbureau/domain/CreditBureauConfiguration.java  | 2 +-
 .../creditbureau/domain/CreditBureauLoanProductMapping.java            | 2 +-
 .../infrastructure/creditbureau/domain/OrganisationCreditBureau.java   | 2 +-
 .../infrastructure/dataqueries/domain/EntityDatatableChecks.java       | 2 +-
 .../org/apache/fineract/infrastructure/dataqueries/domain/Report.java  | 2 +-
 .../fineract/infrastructure/dataqueries/domain/ReportParameter.java    | 2 +-
 .../infrastructure/dataqueries/domain/ReportParameterUsage.java        | 2 +-
 .../fineract/infrastructure/documentmanagement/domain/Document.java    | 2 +-
 .../fineract/infrastructure/documentmanagement/domain/Image.java       | 2 +-
 .../infrastructure/entityaccess/domain/FineractEntityAccess.java       | 2 +-
 .../infrastructure/entityaccess/domain/FineractEntityRelation.java     | 2 +-
 .../entityaccess/domain/FineractEntityToEntityMapping.java             | 2 +-
 .../apache/fineract/infrastructure/gcm/domain/DeviceRegistration.java  | 2 +-
 .../java/org/apache/fineract/infrastructure/hooks/domain/Hook.java     | 2 +-
 .../apache/fineract/infrastructure/hooks/domain/HookConfiguration.java | 2 +-
 .../org/apache/fineract/infrastructure/hooks/domain/HookResource.java  | 2 +-
 .../org/apache/fineract/infrastructure/hooks/domain/HookTemplate.java  | 2 +-
 .../java/org/apache/fineract/infrastructure/hooks/domain/Schema.java   | 2 +-
 .../org/apache/fineract/infrastructure/jobs/domain/JobParameter.java   | 2 +-
 .../apache/fineract/infrastructure/jobs/domain/ScheduledJobDetail.java | 2 +-
 .../fineract/infrastructure/jobs/domain/ScheduledJobRunHistory.java    | 2 +-
 .../apache/fineract/infrastructure/jobs/domain/SchedulerDetail.java    | 2 +-
 .../infrastructure/reportmailingjob/domain/ReportMailingJob.java       | 2 +-
 .../reportmailingjob/domain/ReportMailingJobConfiguration.java         | 2 +-
 .../reportmailingjob/domain/ReportMailingJobRunHistory.java            | 2 +-
 .../apache/fineract/infrastructure/security/domain/TFAccessToken.java  | 2 +-
 .../infrastructure/security/domain/TwoFactorConfiguration.java         | 2 +-
 .../java/org/apache/fineract/infrastructure/sms/domain/SmsMessage.java | 2 +-
 .../org/apache/fineract/infrastructure/survey/domain/Likelihood.java   | 2 +-
 .../org/apache/fineract/interoperation/domain/InteropIdentifier.java   | 2 +-
 .../main/java/org/apache/fineract/mix/domain/MixTaxonomyMapping.java   | 2 +-
 .../java/org/apache/fineract/notification/domain/Notification.java     | 2 +-
 .../org/apache/fineract/notification/domain/NotificationMapper.java    | 2 +-
 .../src/main/java/org/apache/fineract/notification/domain/Topic.java   | 2 +-
 .../java/org/apache/fineract/notification/domain/TopicSubscriber.java  | 2 +-
 .../java/org/apache/fineract/organisation/holiday/domain/Holiday.java  | 2 +-
 .../fineract/organisation/monetary/domain/ApplicationCurrency.java     | 2 +-
 .../java/org/apache/fineract/organisation/office/domain/Office.java    | 2 +-
 .../apache/fineract/organisation/office/domain/OfficeTransaction.java  | 2 +-
 .../fineract/organisation/office/domain/OrganisationCurrency.java      | 2 +-
 .../organisation/provisioning/domain/LoanProductProvisionCriteria.java | 2 +-
 .../organisation/provisioning/domain/ProvisioningCategory.java         | 2 +-
 .../organisation/provisioning/domain/ProvisioningCriteria.java         | 2 +-
 .../provisioning/domain/ProvisioningCriteriaDefinition.java            | 2 +-
 .../main/java/org/apache/fineract/organisation/staff/domain/Staff.java | 2 +-
 .../java/org/apache/fineract/organisation/teller/domain/Cashier.java   | 2 +-
 .../apache/fineract/organisation/teller/domain/CashierTransaction.java | 2 +-
 .../java/org/apache/fineract/organisation/teller/domain/Teller.java    | 2 +-
 .../apache/fineract/organisation/teller/domain/TellerTransaction.java  | 2 +-
 .../apache/fineract/organisation/workingdays/domain/WorkingDays.java   | 2 +-
 .../apache/fineract/portfolio/account/domain/AccountAssociations.java  | 2 +-
 .../fineract/portfolio/account/domain/AccountTransferDetails.java      | 2 +-
 .../portfolio/account/domain/AccountTransferStandingInstruction.java   | 2 +-
 .../fineract/portfolio/account/domain/AccountTransferTransaction.java  | 2 +-
 .../java/org/apache/fineract/portfolio/address/domain/Address.java     | 2 +-
 .../apache/fineract/portfolio/address/domain/FieldConfiguration.java   | 2 +-
 .../java/org/apache/fineract/portfolio/calendar/domain/Calendar.java   | 2 +-
 .../org/apache/fineract/portfolio/calendar/domain/CalendarHistory.java | 2 +-
 .../apache/fineract/portfolio/calendar/domain/CalendarInstance.java    | 2 +-
 .../main/java/org/apache/fineract/portfolio/charge/domain/Charge.java  | 2 +-
 .../main/java/org/apache/fineract/portfolio/client/domain/Client.java  | 2 +-
 .../org/apache/fineract/portfolio/client/domain/ClientAddress.java     | 2 +-
 .../java/org/apache/fineract/portfolio/client/domain/ClientCharge.java | 2 +-
 .../apache/fineract/portfolio/client/domain/ClientChargePaidBy.java    | 2 +-
 .../apache/fineract/portfolio/client/domain/ClientFamilyMembers.java   | 2 +-
 .../org/apache/fineract/portfolio/client/domain/ClientIdentifier.java  | 2 +-
 .../org/apache/fineract/portfolio/client/domain/ClientNonPerson.java   | 2 +-
 .../org/apache/fineract/portfolio/client/domain/ClientTransaction.java | 2 +-
 .../apache/fineract/portfolio/client/domain/ClientTransferDetails.java | 2 +-
 .../apache/fineract/portfolio/collateral/domain/LoanCollateral.java    | 2 +-
 .../apache/fineract/portfolio/floatingrates/domain/FloatingRate.java   | 2 +-
 .../fineract/portfolio/floatingrates/domain/FloatingRatePeriod.java    | 2 +-
 .../src/main/java/org/apache/fineract/portfolio/fund/domain/Fund.java  | 2 +-
 .../main/java/org/apache/fineract/portfolio/group/domain/Group.java    | 2 +-
 .../java/org/apache/fineract/portfolio/group/domain/GroupLevel.java    | 2 +-
 .../java/org/apache/fineract/portfolio/group/domain/GroupRole.java     | 2 +-
 .../apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java | 2 +-
 .../portfolio/interestratechart/domain/InterestIncentives.java         | 2 +-
 .../fineract/portfolio/interestratechart/domain/InterestRateChart.java | 2 +-
 .../portfolio/interestratechart/domain/InterestRateChartSlab.java      | 2 +-
 .../java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java    | 2 +-
 .../org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java   | 2 +-
 .../apache/fineract/portfolio/loanaccount/domain/LoanChargePaidBy.java | 2 +-
 .../fineract/portfolio/loanaccount/domain/LoanDisbursementDetails.java | 2 +-
 .../fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java   | 2 +-
 .../loanaccount/domain/LoanInterestRecalcualtionAdditionalDetails.java | 2 +-
 .../portfolio/loanaccount/domain/LoanInterestRecalculationDetails.java | 2 +-
 .../portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java     | 2 +-
 .../portfolio/loanaccount/domain/LoanOverdueInstallmentCharge.java     | 2 +-
 .../portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java | 2 +-
 .../domain/LoanRescheduleRequestToTermVariationMapping.java            | 2 +-
 .../fineract/portfolio/loanaccount/domain/LoanTermVariations.java      | 2 +-
 .../apache/fineract/portfolio/loanaccount/domain/LoanTopupDetails.java | 2 +-
 .../fineract/portfolio/loanaccount/domain/LoanTrancheCharge.java       | 2 +-
 .../portfolio/loanaccount/domain/LoanTrancheDisbursementCharge.java    | 2 +-
 .../apache/fineract/portfolio/loanaccount/domain/LoanTransaction.java  | 2 +-
 .../loanaccount/domain/LoanTransactionToRepaymentScheduleMapping.java  | 2 +-
 .../fineract/portfolio/loanaccount/guarantor/domain/Guarantor.java     | 2 +-
 .../loanaccount/guarantor/domain/GuarantorFundingDetails.java          | 2 +-
 .../loanaccount/guarantor/domain/GuarantorFundingTransaction.java      | 2 +-
 .../loanaccount/loanschedule/domain/LoanRepaymentScheduleHistory.java  | 2 +-
 .../loanaccount/rescheduleloan/domain/LoanRescheduleRequest.java       | 2 +-
 .../org/apache/fineract/portfolio/loanproduct/domain/LoanProduct.java  | 2 +-
 .../loanproduct/domain/LoanProductBorrowerCycleVariations.java         | 2 +-
 .../loanproduct/domain/LoanProductConfigurableAttributes.java          | 2 +-
 .../portfolio/loanproduct/domain/LoanProductFloatingRates.java         | 2 +-
 .../portfolio/loanproduct/domain/LoanProductGuaranteeDetails.java      | 2 +-
 .../loanproduct/domain/LoanProductInterestRecalculationDetails.java    | 2 +-
 .../loanproduct/domain/LoanProductVariableInstallmentConfig.java       | 2 +-
 .../loanproduct/domain/LoanTransactionProcessingStrategy.java          | 2 +-
 .../fineract/portfolio/loanproduct/productmix/domain/ProductMix.java   | 2 +-
 .../fineract/portfolio/meeting/attendance/domain/ClientAttendance.java | 2 +-
 .../java/org/apache/fineract/portfolio/meeting/domain/Meeting.java     | 2 +-
 .../src/main/java/org/apache/fineract/portfolio/note/domain/Note.java  | 2 +-
 .../apache/fineract/portfolio/paymentdetail/domain/PaymentDetail.java  | 2 +-
 .../org/apache/fineract/portfolio/paymenttype/domain/PaymentType.java  | 2 +-
 .../src/main/java/org/apache/fineract/portfolio/rate/domain/Rate.java  | 2 +-
 .../portfolio/savings/domain/DepositAccountInterestIncentive.java      | 2 +-
 .../portfolio/savings/domain/DepositAccountInterestIncentives.java     | 2 +-
 .../portfolio/savings/domain/DepositAccountInterestRateChart.java      | 2 +-
 .../portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java | 2 +-
 .../portfolio/savings/domain/DepositAccountOnHoldTransaction.java      | 2 +-
 .../portfolio/savings/domain/DepositAccountRecurringDetail.java        | 2 +-
 .../portfolio/savings/domain/DepositAccountTermAndPreClosure.java      | 2 +-
 .../portfolio/savings/domain/DepositProductRecurringDetail.java        | 2 +-
 .../portfolio/savings/domain/DepositProductTermAndPreClosure.java      | 2 +-
 .../portfolio/savings/domain/RecurringDepositScheduleInstallment.java  | 2 +-
 .../org/apache/fineract/portfolio/savings/domain/SavingsAccount.java   | 2 +-
 .../apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java | 2 +-
 .../fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java  | 2 +-
 .../fineract/portfolio/savings/domain/SavingsAccountTransaction.java   | 2 +-
 .../portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java  | 2 +-
 .../portfolio/savings/domain/SavingsOfficerAssignmentHistory.java      | 2 +-
 .../org/apache/fineract/portfolio/savings/domain/SavingsProduct.java   | 2 +-
 .../fineract/portfolio/self/account/domain/SelfBeneficiariesTPT.java   | 2 +-
 .../java/org/apache/fineract/portfolio/self/pockets/domain/Pocket.java | 2 +-
 .../fineract/portfolio/self/pockets/domain/PocketAccountMapping.java   | 2 +-
 .../portfolio/self/registration/domain/SelfServiceRegistration.java    | 2 +-
 .../apache/fineract/portfolio/shareaccounts/domain/ShareAccount.java   | 2 +-
 .../fineract/portfolio/shareaccounts/domain/ShareAccountCharge.java    | 2 +-
 .../portfolio/shareaccounts/domain/ShareAccountChargePaidBy.java       | 2 +-
 .../portfolio/shareaccounts/domain/ShareAccountDividendDetails.java    | 2 +-
 .../portfolio/shareaccounts/domain/ShareAccountTransaction.java        | 2 +-
 .../apache/fineract/portfolio/shareproducts/domain/ShareProduct.java   | 2 +-
 .../shareproducts/domain/ShareProductDividendPayOutDetails.java        | 2 +-
 .../portfolio/shareproducts/domain/ShareProductMarketPrice.java        | 2 +-
 .../java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java    | 2 +-
 .../org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java  | 2 +-
 .../main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java   | 2 +-
 .../org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java     | 2 +-
 .../src/main/java/org/apache/fineract/spm/domain/Component.java        | 2 +-
 .../src/main/java/org/apache/fineract/spm/domain/LookupTable.java      | 2 +-
 .../src/main/java/org/apache/fineract/spm/domain/Question.java         | 2 +-
 .../src/main/java/org/apache/fineract/spm/domain/Response.java         | 2 +-
 .../src/main/java/org/apache/fineract/spm/domain/Scorecard.java        | 2 +-
 .../src/main/java/org/apache/fineract/spm/domain/Survey.java           | 2 +-
 .../src/main/java/org/apache/fineract/template/domain/Template.java    | 2 +-
 .../main/java/org/apache/fineract/template/domain/TemplateMapper.java  | 2 +-
 .../java/org/apache/fineract/useradministration/domain/AppUser.java    | 2 +-
 .../fineract/useradministration/domain/AppUserClientMapping.java       | 2 +-
 .../fineract/useradministration/domain/AppUserPreviousPassword.java    | 2 +-
 .../fineract/useradministration/domain/PasswordValidationPolicy.java   | 2 +-
 .../java/org/apache/fineract/useradministration/domain/Permission.java | 2 +-
 .../main/java/org/apache/fineract/useradministration/domain/Role.java  | 2 +-
 190 files changed, 190 insertions(+), 191 deletions(-)

diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/domain/GLClosure.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/domain/GLClosure.java
index 7e029b8..9d7840d 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/domain/GLClosure.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/domain/GLClosure.java
@@ -38,7 +38,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "acc_gl_closure", uniqueConstraints = { @UniqueConstraint(columnNames = { "office_id", "closing_date" }, name = "office_id_closing_date") })
-public class GLClosure extends AbstractAuditableCustom<AppUser, Long> {
+public class GLClosure extends AbstractAuditableCustom {
 
     @ManyToOne
     @JoinColumn(name = "office_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/financialactivityaccount/domain/FinancialActivityAccount.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/financialactivityaccount/domain/FinancialActivityAccount.java
index 6527993..ff17724 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/financialactivityaccount/domain/FinancialActivityAccount.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/financialactivityaccount/domain/FinancialActivityAccount.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "acc_gl_financial_activity_account")
-public class FinancialActivityAccount extends AbstractPersistableCustom<Long> {
+public class FinancialActivityAccount extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.EAGER)
     @JoinColumn(name = "gl_account_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/domain/GLAccount.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/domain/GLAccount.java
index ceaa681..f864842 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/domain/GLAccount.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/domain/GLAccount.java
@@ -39,7 +39,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "acc_gl_account", uniqueConstraints = { @UniqueConstraint(columnNames = { "gl_code" }, name = "acc_gl_code") })
-public class GLAccount extends AbstractPersistableCustom<Long> {
+public class GLAccount extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "parent_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/domain/TrialBalance.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/domain/TrialBalance.java
index 8e9543a..9951ad6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/domain/TrialBalance.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/domain/TrialBalance.java
@@ -32,7 +32,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_trial_balance")
-public class TrialBalance extends AbstractPersistableCustom<Long> {
+public class TrialBalance extends AbstractPersistableCustom {
 
     @Column(name = "office_id", nullable = false)
     private Long officeId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java
index 666c47a..7a19501 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java
@@ -40,7 +40,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "acc_gl_journal_entry")
-public class JournalEntry extends AbstractAuditableCustom<AppUser, Long> {
+public class JournalEntry extends AbstractAuditableCustom {
 
     @ManyToOne
     @JoinColumn(name = "office_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/domain/ProductToGLAccountMapping.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/domain/ProductToGLAccountMapping.java
index d67cdf3..14a9762 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/domain/ProductToGLAccountMapping.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/domain/ProductToGLAccountMapping.java
@@ -32,7 +32,7 @@ import org.apache.fineract.portfolio.paymenttype.domain.PaymentType;
 @Entity
 @Table(name = "acc_product_mapping", uniqueConstraints = { @UniqueConstraint(columnNames = { "product_id", "product_type",
         "financial_account_type", "payment_type" }, name = "financial_action") })
-public class ProductToGLAccountMapping extends AbstractPersistableCustom<Long> {
+public class ProductToGLAccountMapping extends AbstractPersistableCustom {
 
     @ManyToOne(optional=true)
     @JoinColumn(name = "gl_account_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java
index f31474a..7ca5588 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java
@@ -33,7 +33,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
 
 @Entity
 @Table(name = "m_loanproduct_provisioning_entry")
-public class LoanProductProvisioningEntry extends AbstractPersistableCustom<Long> {
+public class LoanProductProvisioningEntry extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "history_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntry.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntry.java
index ca83c1c..6ca0658 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntry.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntry.java
@@ -37,7 +37,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_provisioning_history")
-public class ProvisioningEntry extends AbstractPersistableCustom<Long> {
+public class ProvisioningEntry extends AbstractPersistableCustom {
 
     @Column(name = "journal_entry_created")
     private Boolean isJournalEntryCreated;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingRule.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingRule.java
index 143b24b..c10b7cb 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingRule.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingRule.java
@@ -43,7 +43,7 @@ import org.apache.fineract.organisation.office.domain.Office;
 
 @Entity
 @Table(name = "acc_accounting_rule", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "accounting_rule_name_unique") })
-public class AccountingRule extends AbstractPersistableCustom<Long> {
+public class AccountingRule extends AbstractPersistableCustom {
 
     @Column(name = "name", nullable = false, length = 500)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingTagRule.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingTagRule.java
index 54d343a..6af091e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingTagRule.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/domain/AccountingTagRule.java
@@ -30,7 +30,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "acc_rule_tags", uniqueConstraints = { @UniqueConstraint(columnNames = { "acc_rule_id", "tag_id", "acc_type_enum" }, name = "UNIQUE_ACCOUNT_RULE_TAGS") })
-public class AccountingTagRule extends AbstractPersistableCustom<Long> {
+public class AccountingTagRule extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "acc_rule_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java
index bb098a3..b92807a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java
@@ -34,7 +34,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_adhoc")
-public class AdHoc extends AbstractAuditableCustom<AppUser, Long> {
+public class AdHoc extends AbstractAuditableCustom {
 
       @Column(name = "name", length = 100)
     private  String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandSource.java b/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandSource.java
index 216d6b2..c6f843e 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandSource.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandSource.java
@@ -34,7 +34,7 @@ import org.joda.time.DateTime;
 
 @Entity
 @Table(name = "m_portfolio_command_source")
-public class CommandSource extends AbstractPersistableCustom<Long> {
+public class CommandSource extends AbstractPersistableCustom {
 
     @Column(name = "action_name", nullable = true, length = 100)
     private String actionName;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/domain/AccountNumberFormat.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/domain/AccountNumberFormat.java
index 150d8a1..58d6a87 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/domain/AccountNumberFormat.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/domain/AccountNumberFormat.java
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = AccountNumberFormatConstants.ACCOUNT_NUMBER_FORMAT_TABLE_NAME, uniqueConstraints = { @UniqueConstraint(columnNames = { AccountNumberFormatConstants.ACCOUNT_TYPE_ENUM_COLUMN_NAME }, name = AccountNumberFormatConstants.ACCOUNT_TYPE_UNIQUE_CONSTRAINT_NAME) })
-public class AccountNumberFormat extends AbstractPersistableCustom<Long> {
+public class AccountNumberFormat extends AbstractPersistableCustom {
 
     @Column(name = AccountNumberFormatConstants.ACCOUNT_TYPE_ENUM_COLUMN_NAME, nullable = false)
     private Integer accountTypeEnum;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocument.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocument.java
index 4d17b33..a8d8a7e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocument.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/domain/ImportDocument.java
@@ -34,7 +34,7 @@ import org.joda.time.LocalDateTime;
 
 @Entity
 @Table(name = "m_import_document")
-public class ImportDocument extends AbstractPersistableCustom<Long>{
+public class ImportDocument extends AbstractPersistableCustom{
 
     @OneToOne
     @JoinColumn(name = "document_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/domain/PlatformCache.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/domain/PlatformCache.java
index e695797..abc02ee 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/domain/PlatformCache.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/domain/PlatformCache.java
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "c_cache")
-public class PlatformCache extends AbstractPersistableCustom<Long> {
+public class PlatformCache extends AbstractPersistableCustom {
 
     @Column(name = "cache_type_enum")
     private Integer cacheType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java
index 6529397..0230e67 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java
@@ -50,7 +50,7 @@ import org.joda.time.format.DateTimeFormatter;
 
 @Entity
 @Table(name = "scheduled_email_campaign")
-public class EmailCampaign extends AbstractPersistableCustom<Long> {
+public class EmailCampaign extends AbstractPersistableCustom {
 
     @Column(name = "campaign_name", nullable = false)
     private String campaignName;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java
index 069c986..5f06f48 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "scheduled_email_configuration")
-public class EmailConfiguration extends AbstractPersistableCustom<Long> {
+public class EmailConfiguration extends AbstractPersistableCustom {
     @Column(name = "name", nullable = false)
     private String name;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java
index bee7d23..ddea717 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java
@@ -39,7 +39,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "scheduled_email_messages_outbound")
-public class EmailMessage extends AbstractPersistableCustom<Long> {
+public class EmailMessage extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "group_id", nullable = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaign.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaign.java
index c72deaf..089fcc5 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaign.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaign.java
@@ -54,7 +54,7 @@ import org.joda.time.format.DateTimeFormatter;
 
 @Entity
 @Table(name = "sms_campaign", uniqueConstraints = {@UniqueConstraint(columnNames = { "campaign_name" }, name = "campaign_name_UNIQUE")})
-public class SmsCampaign extends AbstractPersistableCustom<Long> {
+public class SmsCampaign extends AbstractPersistableCustom {
 
     @Column(name = "campaign_name", nullable = false)
     private String campaignName;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/domain/Code.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/domain/Code.java
index d5728c5..18e1c3b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/domain/Code.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/domain/Code.java
@@ -35,7 +35,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_code", uniqueConstraints = { @UniqueConstraint(columnNames = { "code_name" }, name = "code_name") })
-public class Code extends AbstractPersistableCustom<Long> {
+public class Code extends AbstractPersistableCustom {
 
     @Column(name = "code_name", length = 100)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/domain/CodeValue.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/domain/CodeValue.java
index 3857ff1..87fd6cc 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/domain/CodeValue.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/domain/CodeValue.java
@@ -34,7 +34,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_code_value", uniqueConstraints = { @UniqueConstraint(columnNames = { "code_id", "code_value" }, name = "code_value_duplicate") })
-public class CodeValue extends AbstractPersistableCustom<Long> {
+public class CodeValue extends AbstractPersistableCustom {
 
     @Column(name = "code_value", length = 100)
     private String label;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/domain/ExternalService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/domain/ExternalService.java
index 22fc6cd..31b4ac6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/domain/ExternalService.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/domain/ExternalService.java
@@ -26,7 +26,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "c_external_service", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "name_UNIQUE") })
-public class ExternalService extends AbstractPersistableCustom<Long> {
+public class ExternalService extends AbstractPersistableCustom {
 
     @Column(name = "name", length = 50)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/domain/GlobalConfigurationProperty.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/domain/GlobalConfigurationProperty.java
index c7089ae..6dc15ef 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/domain/GlobalConfigurationProperty.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/configuration/domain/GlobalConfigurationProperty.java
@@ -32,7 +32,7 @@ import org.apache.fineract.infrastructure.security.exception.ForcePasswordResetE
 
 @Entity
 @Table(name = "c_configuration")
-public class GlobalConfigurationProperty extends AbstractPersistableCustom<Long> {
+public class GlobalConfigurationProperty extends AbstractPersistableCustom {
 
     @Column(name = "name", nullable = false)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractAuditableCustom.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractAuditableCustom.java
index 41a615f..db0cf98 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractAuditableCustom.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractAuditableCustom.java
@@ -18,7 +18,6 @@
  */
 package org.apache.fineract.infrastructure.core.domain;
 
-import java.io.Serializable;
 import java.time.Instant;
 import java.util.Date;
 import java.util.Optional;
@@ -46,7 +45,7 @@ import org.springframework.data.jpa.domain.AbstractAuditable;
  *            the type of the auditing type's identifier
  */
 @MappedSuperclass
-public abstract class AbstractAuditableCustom<U, PK extends Serializable> extends AbstractPersistableCustom<PK> implements Auditable<AppUser, Long, Instant> {
+public abstract class AbstractAuditableCustom extends AbstractPersistableCustom implements Auditable<AppUser, Long, Instant> {
 
     private static final long serialVersionUID = 141481953116476081L;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java
index 1670922..c7e3663 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java
@@ -38,7 +38,7 @@ import org.springframework.data.domain.Persistable;
  * "we end up with issues on OpenJPA" (TODO clarify this).
  */
 @MappedSuperclass
-public abstract class AbstractPersistableCustom<PK extends Serializable> implements Persistable<Long>, Serializable {
+public abstract class AbstractPersistableCustom implements Persistable<Long>, Serializable {
 
     private static final long serialVersionUID = 9181640245194392646L;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureau.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureau.java
index b9a4823..b46d46a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureau.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureau.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_creditbureau")
-public class CreditBureau extends AbstractPersistableCustom<Long> {
+public class CreditBureau extends AbstractPersistableCustom {
 
 
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureauConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureauConfiguration.java
index 54e8a4d..d6f8191 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureauConfiguration.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureauConfiguration.java
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_creditbureau_configuration")
-public class CreditBureauConfiguration extends AbstractPersistableCustom<Long> {
+public class CreditBureauConfiguration extends AbstractPersistableCustom {
     @Column(name = "configkey")
     private String configurationKey;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureauLoanProductMapping.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureauLoanProductMapping.java
index 91162ec..7e3e572 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureauLoanProductMapping.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/CreditBureauLoanProductMapping.java
@@ -30,7 +30,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
 
 @Entity
 @Table(name = "m_creditbureau_loanproduct_mapping")
-public class CreditBureauLoanProductMapping extends AbstractPersistableCustom<Long> {
+public class CreditBureauLoanProductMapping extends AbstractPersistableCustom {
 
     @Column(name = "is_CreditCheck_Mandatory")
     private boolean isCreditCheckMandatory;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/OrganisationCreditBureau.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/OrganisationCreditBureau.java
index cbd0115..b60fc24 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/OrganisationCreditBureau.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/domain/OrganisationCreditBureau.java
@@ -30,7 +30,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_organisation_creditbureau")
-public class OrganisationCreditBureau extends AbstractPersistableCustom<Long> {
+public class OrganisationCreditBureau extends AbstractPersistableCustom {
 
     private String alias;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/EntityDatatableChecks.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/EntityDatatableChecks.java
index 07e8173..d3a55e1 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/EntityDatatableChecks.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/EntityDatatableChecks.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 @Entity
 @Table(name = "m_entity_datatable_check")
 
-public class EntityDatatableChecks extends AbstractPersistableCustom<Long> {
+public class EntityDatatableChecks extends AbstractPersistableCustom {
 
     @Column(name = "application_table_name", nullable = false)
     private String entity;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/Report.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/Report.java
index b1500d8..0b5894a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/Report.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/Report.java
@@ -43,7 +43,7 @@ import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityEx
 
 @Entity
 @Table(name = "stretchy_report", uniqueConstraints = { @UniqueConstraint(columnNames = { "report_name" }, name = "unq_report_name") })
-public final class Report extends AbstractPersistableCustom<Long> {
+public final class Report extends AbstractPersistableCustom {
 
     @Column(name = "report_name", nullable = false, unique = true)
     private String reportName;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/ReportParameter.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/ReportParameter.java
index 6a43ac3..80d212b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/ReportParameter.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/ReportParameter.java
@@ -24,7 +24,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "stretchy_parameter")
-public class ReportParameter extends AbstractPersistableCustom<Long> {
+public class ReportParameter extends AbstractPersistableCustom {
 
     protected ReportParameter() {
         //
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/ReportParameterUsage.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/ReportParameterUsage.java
index ba5ba22..2924b94 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/ReportParameterUsage.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/ReportParameterUsage.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "stretchy_report_parameter")
-public final class ReportParameterUsage extends AbstractPersistableCustom<Long> {
+public final class ReportParameterUsage extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "report_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/domain/Document.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/domain/Document.java
index 022da29..c20db2a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/domain/Document.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/domain/Document.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.documentmanagement.command.DocumentCom
 
 @Entity
 @Table(name = "m_document")
-public class Document extends AbstractPersistableCustom<Long> {
+public class Document extends AbstractPersistableCustom {
 
     @Column(name = "parent_entity_type", length = 50)
     private String parentEntityType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/domain/Image.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/domain/Image.java
index 76c255b..a7231e0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/domain/Image.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/documentmanagement/domain/Image.java
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_image")
-public final class Image extends AbstractPersistableCustom<Long> {
+public final class Image extends AbstractPersistableCustom {
 
     @Column(name = "location", length = 500)
     private String location;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityAccess.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityAccess.java
index 4293cc3..77c431c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityAccess.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityAccess.java
@@ -32,7 +32,7 @@ import org.apache.fineract.infrastructure.entityaccess.FineractEntityAccessConst
 
 @Entity
 @Table(name = "m_entity_to_entity_access")
-public class FineractEntityAccess extends AbstractPersistableCustom<Long> {
+public class FineractEntityAccess extends AbstractPersistableCustom {
 
     @Column(name = "entity_type", length = 50)
     private String entityType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityRelation.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityRelation.java
index 23786d4..5a53ff8 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityRelation.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityRelation.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_entity_relation")
-public class FineractEntityRelation extends AbstractPersistableCustom<Long> {
+public class FineractEntityRelation extends AbstractPersistableCustom {
 
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "relationId", orphanRemoval = true)
     private Set<FineractEntityToEntityMapping> fineractEntityToEntityMapping = new HashSet<>();
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityToEntityMapping.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityToEntityMapping.java
index e922ac8..e9ef0f3 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityToEntityMapping.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/domain/FineractEntityToEntityMapping.java
@@ -36,7 +36,7 @@ import org.apache.fineract.infrastructure.entityaccess.exception.FineractEntityT
 
 @Entity
 @Table(name = "m_entity_to_entity_mapping", uniqueConstraints = { @UniqueConstraint(columnNames = { "rel_id", "from_id", "to_id" }) })
-public class FineractEntityToEntityMapping extends AbstractPersistableCustom<Long> {
+public class FineractEntityToEntityMapping extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "rel_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/gcm/domain/DeviceRegistration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/gcm/domain/DeviceRegistration.java
index d1bbd66..d82b3ec 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/gcm/domain/DeviceRegistration.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/gcm/domain/DeviceRegistration.java
@@ -32,7 +32,7 @@ import org.apache.fineract.portfolio.client.domain.Client;
 
 @Entity
 @Table(name = "client_device_registration")
-public class DeviceRegistration extends AbstractPersistableCustom<Long> {
+public class DeviceRegistration extends AbstractPersistableCustom {
 
     @OneToOne
     @JoinColumn(name = "client_id", nullable = false, unique = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Hook.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Hook.java
index ddedb56..e65f8ef 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Hook.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Hook.java
@@ -47,7 +47,7 @@ import org.springframework.util.CollectionUtils;
 
 @Entity
 @Table(name = "m_hook")
-public class Hook extends AbstractAuditableCustom<AppUser, Long> {
+public class Hook extends AbstractAuditableCustom {
 
     @Column(name = "name", nullable = false, length = 100)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookConfiguration.java
index 456a01d..88bd25d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookConfiguration.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookConfiguration.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_hook_configuration")
-public class HookConfiguration extends AbstractPersistableCustom<Long> {
+public class HookConfiguration extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "hook_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookResource.java
index f52901c..46f496f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookResource.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookResource.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_hook_registered_events")
-public class HookResource extends AbstractPersistableCustom<Long> {
+public class HookResource extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "hook_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookTemplate.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookTemplate.java
index b208bf9..e92b9b2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookTemplate.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/HookTemplate.java
@@ -34,7 +34,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_hook_templates")
-public class HookTemplate extends AbstractPersistableCustom<Long> {
+public class HookTemplate extends AbstractPersistableCustom {
 
     @Column(name = "name", nullable = false, length = 100)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Schema.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Schema.java
index fd49263..3a387de 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Schema.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Schema.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_hook_schema")
-public class Schema extends AbstractPersistableCustom<Long> {
+public class Schema extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "hook_template_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/JobParameter.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/JobParameter.java
index 7871625..515b648 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/JobParameter.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/JobParameter.java
@@ -26,7 +26,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "job_parameters")
-public class JobParameter extends AbstractPersistableCustom<Long> {
+public class JobParameter extends AbstractPersistableCustom {
 
     @Column(name = "job_id", nullable = false)
     private Long jobId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/ScheduledJobDetail.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/ScheduledJobDetail.java
index cf01c86..9a2c92c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/ScheduledJobDetail.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/ScheduledJobDetail.java
@@ -33,7 +33,7 @@ import org.apache.fineract.infrastructure.jobs.api.SchedulerJobApiConstants;
 
 @Entity
 @Table(name = "job")
-public class ScheduledJobDetail extends AbstractPersistableCustom<Long> {
+public class ScheduledJobDetail extends AbstractPersistableCustom {
 
     @Column(name = "name")
     private String jobName;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/ScheduledJobRunHistory.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/ScheduledJobRunHistory.java
index 6df115c..202e24d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/ScheduledJobRunHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/ScheduledJobRunHistory.java
@@ -30,7 +30,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "job_run_history")
-public class ScheduledJobRunHistory extends AbstractPersistableCustom<Long> {
+public class ScheduledJobRunHistory extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "job_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/SchedulerDetail.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/SchedulerDetail.java
index 43cd9ec..8f65980 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/SchedulerDetail.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/domain/SchedulerDetail.java
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "scheduler_detail")
-public class SchedulerDetail extends AbstractPersistableCustom<Long> {
+public class SchedulerDetail extends AbstractPersistableCustom {
 
     @Column(name = "execute_misfired_jobs")
     private boolean executeInstructionForMisfiredJobs;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJob.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJob.java
index 373dc18..ce30f35 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJob.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJob.java
@@ -44,7 +44,7 @@ import org.joda.time.format.DateTimeFormatter;
 
 @Entity
 @Table(name = "m_report_mailing_job", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unique_name") })
-public class ReportMailingJob extends AbstractAuditableCustom<AppUser, Long> {
+public class ReportMailingJob extends AbstractAuditableCustom {
     private static final long serialVersionUID = -2197602941230009227L;
 
     @Column(name = "name", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJobConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJobConfiguration.java
index 43d7cfe..3170de2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJobConfiguration.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJobConfiguration.java
@@ -26,7 +26,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_report_mailing_job_configuration", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unique_name") })
-public class ReportMailingJobConfiguration extends AbstractPersistableCustom<Integer> {
+public class ReportMailingJobConfiguration extends AbstractPersistableCustom {
     private static final long serialVersionUID = 3099279770861263184L;
 
     @Column(name = "name", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJobRunHistory.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJobRunHistory.java
index 5b27b4d..d801b67 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJobRunHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/reportmailingjob/domain/ReportMailingJobRunHistory.java
@@ -31,7 +31,7 @@ import org.joda.time.DateTime;
 
 @Entity
 @Table(name = "m_report_mailing_job_run_history")
-public class ReportMailingJobRunHistory extends AbstractPersistableCustom<Long> {
+public class ReportMailingJobRunHistory extends AbstractPersistableCustom {
     private static final long serialVersionUID = -3757370929988421076L;
 
     @ManyToOne
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TFAccessToken.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TFAccessToken.java
index bdbeedb..8ae59be 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TFAccessToken.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TFAccessToken.java
@@ -37,7 +37,7 @@ import org.joda.time.LocalDateTime;
 @Entity
 @Table(name = "twofactor_access_token",
         uniqueConstraints = {@UniqueConstraint(columnNames = { "token", "appuser_id" }, name = "token_appuser_UNIQUE")})
-public class TFAccessToken extends AbstractPersistableCustom<Long> {
+public class TFAccessToken extends AbstractPersistableCustom {
 
     @Column(name = "token", nullable = false, length = 32)
     private String token;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TwoFactorConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TwoFactorConfiguration.java
index ac39188..1c96596 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TwoFactorConfiguration.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TwoFactorConfiguration.java
@@ -30,7 +30,7 @@ import org.apache.fineract.infrastructure.security.constants.TwoFactorConfigurat
 @Entity
 @Table(name = "twofactor_configuration",
         uniqueConstraints = {@UniqueConstraint(columnNames = { "name" }, name = "name_UNIQUE")})
-public class TwoFactorConfiguration extends AbstractPersistableCustom<Long> {
+public class TwoFactorConfiguration extends AbstractPersistableCustom {
 
     @Column(name = "name", nullable = false, length = 32)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/domain/SmsMessage.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/domain/SmsMessage.java
index 416f273..f222f05 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/domain/SmsMessage.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/domain/SmsMessage.java
@@ -40,7 +40,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "sms_messages_outbound")
-public class SmsMessage extends AbstractPersistableCustom<Long> {
+public class SmsMessage extends AbstractPersistableCustom {
 
     @Column(name = "external_id", nullable = true)
     private String externalId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/survey/domain/Likelihood.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/survey/domain/Likelihood.java
index a9acab8..9368296 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/survey/domain/Likelihood.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/survey/domain/Likelihood.java
@@ -30,7 +30,7 @@ import org.apache.fineract.infrastructure.survey.data.LikelihoodStatus;
 
 @Entity
 @Table(name = "ppi_likelihoods_ppi")
-public final class Likelihood extends AbstractPersistableCustom<Long> {
+public final class Likelihood extends AbstractPersistableCustom {
 
     @Column(name = "ppi_name", nullable = false)
     private String ppiName;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java
index e2b87ee..d129bcb 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java
@@ -38,7 +38,7 @@ import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
         @UniqueConstraint(name = "uk_hathor_identifier_account", columnNames = {"account_id", "type"}),
         @UniqueConstraint(name = "uk_hathor_identifier_value", columnNames = {"type", "a_value", "sub_value_or_type"})
 })
-public class InteropIdentifier extends AbstractPersistableCustom<Long> {
+public class InteropIdentifier extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "account_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/domain/MixTaxonomyMapping.java b/fineract-provider/src/main/java/org/apache/fineract/mix/domain/MixTaxonomyMapping.java
index 576c06f..87e1b03 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/mix/domain/MixTaxonomyMapping.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/mix/domain/MixTaxonomyMapping.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "mix_taxonomy_mapping")
-public class MixTaxonomyMapping extends AbstractPersistableCustom<Long> {
+public class MixTaxonomyMapping extends AbstractPersistableCustom {
 
     @Column(name = "identifier")
     private String identifier;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/notification/domain/Notification.java b/fineract-provider/src/main/java/org/apache/fineract/notification/domain/Notification.java
index d3bbfd4..ccbc85b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/notification/domain/Notification.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/notification/domain/Notification.java
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "notification_generator")
-public class Notification extends AbstractPersistableCustom<Long> {
+public class Notification extends AbstractPersistableCustom {
 
     @Column(name = "object_type")
     private String objectType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/notification/domain/NotificationMapper.java b/fineract-provider/src/main/java/org/apache/fineract/notification/domain/NotificationMapper.java
index c824b04..64188a6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/notification/domain/NotificationMapper.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/notification/domain/NotificationMapper.java
@@ -29,7 +29,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "notification_mapper")
-public class NotificationMapper extends AbstractPersistableCustom<Long> {
+public class NotificationMapper extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "notification_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/notification/domain/Topic.java b/fineract-provider/src/main/java/org/apache/fineract/notification/domain/Topic.java
index e1582d3..081fa27 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/notification/domain/Topic.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/notification/domain/Topic.java
@@ -26,7 +26,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "topic")
-public class Topic extends AbstractPersistableCustom<Long> {
+public class Topic extends AbstractPersistableCustom {
 
     @Column(name = "title", unique = true, nullable = false, length = 100)
     private String title;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/notification/domain/TopicSubscriber.java b/fineract-provider/src/main/java/org/apache/fineract/notification/domain/TopicSubscriber.java
index 6871470..cf58ceb 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/notification/domain/TopicSubscriber.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/notification/domain/TopicSubscriber.java
@@ -29,7 +29,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "topic_subscriber")
-public class TopicSubscriber extends AbstractPersistableCustom<Long> {
+public class TopicSubscriber extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "topic_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/domain/Holiday.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/domain/Holiday.java
index 21b5779..cfea7c7 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/domain/Holiday.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/domain/Holiday.java
@@ -57,7 +57,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_holiday", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "holiday_name") })
-public class Holiday extends AbstractPersistableCustom<Long> {
+public class Holiday extends AbstractPersistableCustom {
 
     @Column(name = "name", unique = true, nullable = false, length = 100)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/domain/ApplicationCurrency.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/domain/ApplicationCurrency.java
index c80ea20..4308f28 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/domain/ApplicationCurrency.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/domain/ApplicationCurrency.java
@@ -27,7 +27,7 @@ import org.apache.fineract.organisation.office.domain.OrganisationCurrency;
 
 @Entity
 @Table(name = "m_currency")
-public class ApplicationCurrency extends AbstractPersistableCustom<Long> {
+public class ApplicationCurrency extends AbstractPersistableCustom {
 
     @Column(name = "code", nullable = false, length = 3)
     private String code;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/Office.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/Office.java
index c3cdac6..8b7ca05 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/Office.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/Office.java
@@ -44,7 +44,7 @@ import org.joda.time.LocalDate;
 @Entity
 @Table(name = "m_office", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "name_org"),
         @UniqueConstraint(columnNames = { "external_id" }, name = "externalid_org") })
-public class Office extends AbstractPersistableCustom<Long> implements Serializable {
+public class Office extends AbstractPersistableCustom implements Serializable {
 
     @OneToMany(fetch = FetchType.LAZY)
     @JoinColumn(name = "parent_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/OfficeTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/OfficeTransaction.java
index 322bb3d..362f0de 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/OfficeTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/OfficeTransaction.java
@@ -37,7 +37,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_office_transaction")
-public class OfficeTransaction extends AbstractPersistableCustom<Long> {
+public class OfficeTransaction extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "from_office_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/OrganisationCurrency.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/OrganisationCurrency.java
index dd1115d..f236fa4 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/OrganisationCurrency.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/domain/OrganisationCurrency.java
@@ -29,7 +29,7 @@ import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
  */
 @Entity
 @Table(name = "m_organisation_currency")
-public class OrganisationCurrency extends AbstractPersistableCustom<Long> {
+public class OrganisationCurrency extends AbstractPersistableCustom {
 
     @Column(name = "code", nullable = false, length = 3)
     private String code;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/LoanProductProvisionCriteria.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/LoanProductProvisionCriteria.java
index a3f3b07..3d5fc91 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/LoanProductProvisionCriteria.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/LoanProductProvisionCriteria.java
@@ -28,7 +28,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
 
 @Entity
 @Table(name = "m_loanproduct_provisioning_mapping", uniqueConstraints = { @UniqueConstraint(columnNames = { "product_id" }, name = "product_id") })
-public class LoanProductProvisionCriteria extends AbstractPersistableCustom<Long> {
+public class LoanProductProvisionCriteria extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "criteria_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCategory.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCategory.java
index 5829fec..9653b9a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCategory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCategory.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_provision_category", uniqueConstraints = { @UniqueConstraint(columnNames = { "category_name" }, name = "category_name") })
-public class ProvisioningCategory extends AbstractPersistableCustom<Long> {
+public class ProvisioningCategory extends AbstractPersistableCustom {
 
     @Column(name = "category_name", nullable = false, unique = true)
     private String categoryName;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCriteria.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCriteria.java
index 17e5c04..e9a1555 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCriteria.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCriteria.java
@@ -42,7 +42,7 @@ import org.joda.time.DateTime;
 
 @Entity
 @Table(name = "m_provisioning_criteria", uniqueConstraints = { @UniqueConstraint(columnNames = { "criteria_name" }, name = "criteria_name") })
-public class ProvisioningCriteria extends AbstractAuditableCustom<AppUser, Long> {
+public class ProvisioningCriteria extends AbstractAuditableCustom {
 
     @Column(name = "criteria_name", nullable = false)
     private String criteriaName;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCriteriaDefinition.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCriteriaDefinition.java
index 0e0ba7e..eaa7bf2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCriteriaDefinition.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/domain/ProvisioningCriteriaDefinition.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_provisioning_criteria_definition")
-public class ProvisioningCriteriaDefinition extends AbstractPersistableCustom<Long> {
+public class ProvisioningCriteriaDefinition extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "criteria_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/staff/domain/Staff.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/staff/domain/Staff.java
index ce1b562..ba95126 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/staff/domain/Staff.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/staff/domain/Staff.java
@@ -42,7 +42,7 @@ import org.joda.time.LocalDate;
 @Table(name = "m_staff", uniqueConstraints = { @UniqueConstraint(columnNames = { "display_name" }, name = "display_name"),
         @UniqueConstraint(columnNames = { "external_id" }, name = "external_id_UNIQUE"),
         @UniqueConstraint(columnNames = { "mobile_no" }, name = "mobile_no_UNIQUE") })
-public class Staff extends AbstractPersistableCustom<Long> {
+public class Staff extends AbstractPersistableCustom {
 
     @Column(name = "firstname", length = 50)
     private String firstname;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java
index adb0a41..af2d258 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Cashier.java
@@ -48,7 +48,7 @@ import org.joda.time.LocalDate;
 @Entity
 @Table(name = "m_cashiers", uniqueConstraints = { @UniqueConstraint(name = "ux_cashiers_staff_teller", columnNames = { "staff_id",
         "teller_id" }) })
-public class Cashier extends AbstractPersistableCustom<Long> {
+public class Cashier extends AbstractPersistableCustom {
 
     // ManyToOne(fetch = FetchType.LAZY)
     // JoinColumn(name = "office_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransaction.java
index a5b0727..d359104 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/CashierTransaction.java
@@ -39,7 +39,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_cashier_transactions")
-public class CashierTransaction extends AbstractPersistableCustom<Long> {
+public class CashierTransaction extends AbstractPersistableCustom {
 
     @Transient
     private Office office;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Teller.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Teller.java
index ac55c8f..9e9940c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Teller.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/Teller.java
@@ -43,7 +43,7 @@ import org.joda.time.LocalDate;
 @Table(name = "m_tellers", uniqueConstraints = {
         @UniqueConstraint(name = "ux_tellers_name", columnNames = {"name"})
 })
-public class Teller extends AbstractPersistableCustom<Long> {
+public class Teller extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "office_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransaction.java
index f22a23f..255447d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/domain/TellerTransaction.java
@@ -33,7 +33,7 @@ import org.apache.fineract.portfolio.client.domain.Client;
 
 @Entity
 @Table(name = "m_teller_transactions")
-public class TellerTransaction extends AbstractPersistableCustom<Long> {
+public class TellerTransaction extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "office_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/domain/WorkingDays.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/domain/WorkingDays.java
index 18ec0d1..132cb71 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/domain/WorkingDays.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/workingdays/domain/WorkingDays.java
@@ -29,7 +29,7 @@ import org.apache.fineract.organisation.workingdays.api.WorkingDaysApiConstants;
 
 @Entity
 @Table(name = "m_working_days")
-public class WorkingDays extends AbstractPersistableCustom<Long> {
+public class WorkingDays extends AbstractPersistableCustom {
 
     @Column(name = "recurrence", length = 100, nullable = true)
     private String recurrence;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountAssociations.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountAssociations.java
index f9ebb6d..c5d1c1e 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountAssociations.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountAssociations.java
@@ -29,7 +29,7 @@ import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
 @Entity
 @Table(name = "m_portfolio_account_associations")
-public class AccountAssociations extends AbstractPersistableCustom<Long> {
+public class AccountAssociations extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "loan_account_id", nullable = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferDetails.java
index bb02bb4..9d65a90 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferDetails.java
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
 @Entity
 @Table(name = "m_account_transfer_details")
-public class AccountTransferDetails extends AbstractPersistableCustom<Long> {
+public class AccountTransferDetails extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "from_office_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferStandingInstruction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferStandingInstruction.java
index d5b28b7..5be569b 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferStandingInstruction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferStandingInstruction.java
@@ -56,7 +56,7 @@ import org.joda.time.MonthDay;
 
 @Entity
 @Table(name = "m_account_transfer_standing_instructions", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "name") })
-public class AccountTransferStandingInstruction extends AbstractPersistableCustom<Long> {
+public class AccountTransferStandingInstruction extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "account_transfer_details_id", nullable = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferTransaction.java
index 36f6c36..4ecb4a2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/domain/AccountTransferTransaction.java
@@ -37,7 +37,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_account_transfer_transaction")
-public class AccountTransferTransaction extends AbstractPersistableCustom<Long> {
+public class AccountTransferTransaction extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "account_transfer_details_id", nullable = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/domain/Address.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/domain/Address.java
index c8b7f2d..53d2aab 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/domain/Address.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/domain/Address.java
@@ -40,7 +40,7 @@ import org.joda.time.format.DateTimeFormatter;
 
 @Entity
 @Table(name = "m_address")
-public class Address extends AbstractPersistableCustom<Long> {
+public class Address extends AbstractPersistableCustom {
 
     /*
      * @OneToMany(mappedBy = "address", cascade = CascadeType.ALL) private
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/domain/FieldConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/domain/FieldConfiguration.java
index 2b9bd95..0e21768 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/domain/FieldConfiguration.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/domain/FieldConfiguration.java
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_field_configuration")
-public class FieldConfiguration extends AbstractPersistableCustom<Long> {
+public class FieldConfiguration extends AbstractPersistableCustom {
 
     private String entity;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
index dd67d64..c938df6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
@@ -53,7 +53,7 @@ import org.joda.time.LocalDateTime;
 
 @Entity
 @Table(name = "m_calendar")
-public class Calendar extends AbstractAuditableCustom<AppUser, Long> {
+public class Calendar extends AbstractAuditableCustom {
 
     @Column(name = "title", length = 50, nullable = false)
     private String title;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarHistory.java
index b67a57c..612718a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarHistory.java
@@ -31,7 +31,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_calendar_history")
-public class CalendarHistory extends AbstractPersistableCustom<Long> {
+public class CalendarHistory extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "calendar_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarInstance.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarInstance.java
index 923c239..d20428a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarInstance.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarInstance.java
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_calendar_instance")
-public class CalendarInstance extends AbstractPersistableCustom<Long> {
+public class CalendarInstance extends AbstractPersistableCustom {
 
     @ManyToOne(cascade = CascadeType.PERSIST)
     @JoinColumn(name = "calendar_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java
index 33316a2..7be7908 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java
@@ -52,7 +52,7 @@ import org.joda.time.MonthDay;
 
 @Entity
 @Table(name = "m_charge", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "name") })
-public class Charge extends AbstractPersistableCustom<Long> {
+public class Charge extends AbstractPersistableCustom {
 
     @Column(name = "name", length = 100)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/Client.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/Client.java
index d987109..758a468 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/Client.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/Client.java
@@ -60,7 +60,7 @@ import org.joda.time.format.DateTimeFormatter;
 @Entity
 @Table(name = "m_client", uniqueConstraints = { @UniqueConstraint(columnNames = { "account_no" }, name = "account_no_UNIQUE"), //
         @UniqueConstraint(columnNames = { "mobile_no" }, name = "mobile_no_UNIQUE") })
-public final class Client extends AbstractPersistableCustom<Long> {
+public final class Client extends AbstractPersistableCustom {
 
     @Column(name = "account_no", length = 20, unique = true, nullable = false)
     private String accountNumber;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientAddress.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientAddress.java
index 96ab3fe..f1f1fb2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientAddress.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientAddress.java
@@ -29,7 +29,7 @@ import org.apache.fineract.portfolio.address.domain.Address;
 
 @Entity
 @Table(name = "m_client_address")
-public class ClientAddress extends AbstractPersistableCustom<Long> {
+public class ClientAddress extends AbstractPersistableCustom {
 
     @ManyToOne
     private Client client;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientCharge.java
index 12fa98d..5d8f6a9 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientCharge.java
@@ -41,7 +41,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_client_charge")
-public class ClientCharge extends AbstractPersistableCustom<Long> {
+public class ClientCharge extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "client_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientChargePaidBy.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientChargePaidBy.java
index 4f5b968..a50ff8f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientChargePaidBy.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientChargePaidBy.java
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_client_charge_paid_by")
-public class ClientChargePaidBy extends AbstractPersistableCustom<Long> {
+public class ClientChargePaidBy extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "client_transaction_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientFamilyMembers.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientFamilyMembers.java
index 7e63a26..2ff4288 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientFamilyMembers.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientFamilyMembers.java
@@ -32,7 +32,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_family_members")
-public class ClientFamilyMembers extends AbstractPersistableCustom<Long> {
+public class ClientFamilyMembers extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name="client_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
index 7f69ef4..99829c2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
@@ -36,7 +36,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 @Table(name = "m_client_identifier", uniqueConstraints = {
         @UniqueConstraint(columnNames = { "document_type_id", "document_key" }, name = "unique_identifier_key"),
         @UniqueConstraint(columnNames = { "client_id", "document_key", "active" }, name = "unique_active_client_identifier")})
-public class ClientIdentifier extends AbstractAuditableCustom<AppUser, Long> {
+public class ClientIdentifier extends AbstractAuditableCustom {
 
     @ManyToOne
     @JoinColumn(name = "client_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientNonPerson.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientNonPerson.java
index e67f929..0ef1b51 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientNonPerson.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientNonPerson.java
@@ -43,7 +43,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_client_non_person")
-public class ClientNonPerson extends AbstractPersistableCustom<Long> {
+public class ClientNonPerson extends AbstractPersistableCustom {
 
     @OneToOne(optional = false)
     @JoinColumn(name = "client_id", referencedColumnName = "id", nullable = false, unique = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientTransaction.java
index ed3dcd1..91d9ffd 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientTransaction.java
@@ -52,7 +52,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_client_transaction", uniqueConstraints = { @UniqueConstraint(columnNames = { "external_id" }, name = "external_id") })
-public class ClientTransaction extends AbstractPersistableCustom<Long> {
+public class ClientTransaction extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "client_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientTransferDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientTransferDetails.java
index 3245fc6..f04fc51 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientTransferDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientTransferDetails.java
@@ -30,7 +30,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 @SuppressWarnings("serial")
 @Entity
 @Table(name = "m_client_transfer_details")
-public class ClientTransferDetails extends AbstractPersistableCustom<Long> {
+public class ClientTransferDetails extends AbstractPersistableCustom {
 
     @Column(name = "client_id", length = 20, unique = true, nullable = false)
     private Long clientId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateral/domain/LoanCollateral.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateral/domain/LoanCollateral.java
index de3802a..22582c8 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateral/domain/LoanCollateral.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateral/domain/LoanCollateral.java
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 @Entity
 @Table(name = "m_loan_collateral")
-public class LoanCollateral extends AbstractPersistableCustom<Long> {
+public class LoanCollateral extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/domain/FloatingRate.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/domain/FloatingRate.java
index e258c6a..35fff2d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/domain/FloatingRate.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/domain/FloatingRate.java
@@ -50,7 +50,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_floating_rates", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unq_name") })
-public class FloatingRate extends AbstractPersistableCustom<Long> {
+public class FloatingRate extends AbstractPersistableCustom {
 
     @Column(name = "name", length = 200, unique = true, nullable = false)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/domain/FloatingRatePeriod.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/domain/FloatingRatePeriod.java
index 08570a3..bf696b0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/domain/FloatingRatePeriod.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/domain/FloatingRatePeriod.java
@@ -35,7 +35,7 @@ import org.joda.time.LocalDateTime;
 
 @Entity
 @Table(name = "m_floating_rates_periods")
-public class FloatingRatePeriod extends AbstractPersistableCustom<Long> {
+public class FloatingRatePeriod extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "floating_rates_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/fund/domain/Fund.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/fund/domain/Fund.java
index d95641a..a3eaa0e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/fund/domain/Fund.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/fund/domain/Fund.java
@@ -31,7 +31,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 @Entity
 @Table(name = "m_fund", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "fund_name_org"),
         @UniqueConstraint(columnNames = { "external_id" }, name = "fund_externalid_org") })
-public class Fund extends AbstractPersistableCustom<Long> {
+public class Fund extends AbstractPersistableCustom {
 
     @Column(name = "name")
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/Group.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/Group.java
index d456e3f..9a14145 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/Group.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/Group.java
@@ -63,7 +63,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_group")
-public final class Group extends AbstractPersistableCustom<Long> {
+public final class Group extends AbstractPersistableCustom {
 
     @Column(name = "external_id", length = 100, unique = true)
     private String externalId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/GroupLevel.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/GroupLevel.java
index f39dfa0..35b9cf0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/GroupLevel.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/GroupLevel.java
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_group_level")
-public class GroupLevel extends AbstractPersistableCustom<Long> {
+public class GroupLevel extends AbstractPersistableCustom {
 
     @Column(name = "parent_id")
     private Long parentId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/GroupRole.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/GroupRole.java
index 6a61c08..c2a2f9b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/GroupRole.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/GroupRole.java
@@ -33,7 +33,7 @@ import org.apache.fineract.portfolio.group.api.GroupingTypesApiConstants;
 
 @Entity
 @Table(name = "m_group_roles")
-public class GroupRole extends AbstractPersistableCustom<Long> {
+public class GroupRole extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "group_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java
index 261e4a9..11b8575 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java
@@ -33,7 +33,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_staff_assignment_history")
-public class StaffAssignmentHistory extends AbstractAuditableCustom<AppUser, Long> {
+public class StaffAssignmentHistory extends AbstractAuditableCustom {
 
     @ManyToOne
     @JoinColumn(name = "centre_id", nullable = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java
index 7919951..937095f 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java
@@ -31,7 +31,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_interest_incentives")
-public class InterestIncentives extends AbstractPersistableCustom<Long> {
+public class InterestIncentives extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "interest_rate_slab_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java
index 06b084c..970f847 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java
@@ -58,7 +58,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_interest_rate_chart")
-public class InterestRateChart extends AbstractPersistableCustom<Long> {
+public class InterestRateChart extends AbstractPersistableCustom {
 
     @Embedded
     private InterestRateChartFields chartFields;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java
index 30a610d..2632adb 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java
@@ -56,7 +56,7 @@ import org.apache.fineract.portfolio.interestratechart.InterestRateChartSlabApiC
 
 @Entity
 @Table(name = "m_interest_rate_slab")
-public class InterestRateChartSlab extends AbstractPersistableCustom<Long> {
+public class InterestRateChartSlab extends AbstractPersistableCustom {
 
     @Embedded
     private InterestRateChartSlabFields slabFields;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
index 5a979c8..eff1c24 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
@@ -147,7 +147,7 @@ import org.springframework.stereotype.Component;
 @Component
 @Table(name = "m_loan", uniqueConstraints = { @UniqueConstraint(columnNames = { "account_no" }, name = "loan_account_no_UNIQUE"),
         @UniqueConstraint(columnNames = { "external_id" }, name = "loan_externalid_UNIQUE") })
-public class Loan extends AbstractPersistableCustom<Long> {
+public class Loan extends AbstractPersistableCustom {
 
     /** Disable optimistic locking till batch jobs failures can be fixed **/
     @Version
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java
index f2ec60b..b7b9526 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCharge.java
@@ -56,7 +56,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_loan_charge")
-public class LoanCharge extends AbstractPersistableCustom<Long> {
+public class LoanCharge extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "loan_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanChargePaidBy.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanChargePaidBy.java
index 51671b7..083d2c5 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanChargePaidBy.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanChargePaidBy.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_loan_charge_paid_by")
-public class LoanChargePaidBy extends AbstractPersistableCustom<Long> {
+public class LoanChargePaidBy extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "loan_transaction_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanDisbursementDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanDisbursementDetails.java
index 3ab27b3..be707f4 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanDisbursementDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanDisbursementDetails.java
@@ -34,7 +34,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_loan_disbursement_detail")
-public class LoanDisbursementDetails extends AbstractPersistableCustom<Long> {
+public class LoanDisbursementDetails extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java
index 7ff2919..696423d 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInstallmentCharge.java
@@ -30,7 +30,7 @@ import org.apache.fineract.organisation.monetary.domain.Money;
 
 @Entity
 @Table(name = "m_loan_installment_charge")
-public class LoanInstallmentCharge extends AbstractPersistableCustom<Long> implements Comparable<LoanInstallmentCharge> {
+public class LoanInstallmentCharge extends AbstractPersistableCustom implements Comparable<LoanInstallmentCharge> {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "loan_charge_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInterestRecalcualtionAdditionalDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInterestRecalcualtionAdditionalDetails.java
index a4b257b..25d67e1 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInterestRecalcualtionAdditionalDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInterestRecalcualtionAdditionalDetails.java
@@ -30,7 +30,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_loan_interest_recalculation_additional_details")
-public class LoanInterestRecalcualtionAdditionalDetails extends AbstractPersistableCustom<Long> {
+public class LoanInterestRecalcualtionAdditionalDetails extends AbstractPersistableCustom {
 
     @Temporal(TemporalType.DATE)
     @Column(name = "effective_date")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInterestRecalculationDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInterestRecalculationDetails.java
index 662137b..1d1f5f6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInterestRecalculationDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanInterestRecalculationDetails.java
@@ -38,7 +38,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.RecalculationFrequencyTy
 
 @Entity
 @Table(name = "m_loan_recalculation_details")
-public class LoanInterestRecalculationDetails extends AbstractPersistableCustom<Long> {
+public class LoanInterestRecalculationDetails extends AbstractPersistableCustom {
 
     @OneToOne
     @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java
index 92510a5..779ef44 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java
@@ -34,7 +34,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_loan_officer_assignment_history")
-public class LoanOfficerAssignmentHistory extends AbstractAuditableCustom<AppUser, Long> {
+public class LoanOfficerAssignmentHistory extends AbstractAuditableCustom {
 
     @ManyToOne
     @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOverdueInstallmentCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOverdueInstallmentCharge.java
index 8ca59c4..cb3d244 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOverdueInstallmentCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOverdueInstallmentCharge.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_loan_overdue_installment_charge")
-public class LoanOverdueInstallmentCharge extends AbstractPersistableCustom<Long> {
+public class LoanOverdueInstallmentCharge extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "loan_charge_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
index 0b50e38..3555cbf 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
@@ -41,7 +41,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_loan_repayment_schedule")
-public final class LoanRepaymentScheduleInstallment extends AbstractAuditableCustom<AppUser, Long> implements Comparable<LoanRepaymentScheduleInstallment> {
+public final class LoanRepaymentScheduleInstallment extends AbstractAuditableCustom implements Comparable<LoanRepaymentScheduleInstallment> {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "loan_id", referencedColumnName="id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRescheduleRequestToTermVariationMapping.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRescheduleRequestToTermVariationMapping.java
index 676ae5a..d3798bb 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRescheduleRequestToTermVariationMapping.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRescheduleRequestToTermVariationMapping.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name="m_loan_reschedule_request_term_variations_mapping")
-public class LoanRescheduleRequestToTermVariationMapping extends AbstractPersistableCustom<Long> {
+public class LoanRescheduleRequestToTermVariationMapping extends AbstractPersistableCustom {
 
 
     @ManyToOne(optional = false, cascade = CascadeType.PERSIST)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTermVariations.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTermVariations.java
index 801ae4c..8c3408c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTermVariations.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTermVariations.java
@@ -37,7 +37,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_loan_term_variations")
-public class LoanTermVariations extends AbstractPersistableCustom<Long> {
+public class LoanTermVariations extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTopupDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTopupDetails.java
index fe20bf9..12a670e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTopupDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTopupDetails.java
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_loan_topup")
-public class LoanTopupDetails  extends AbstractPersistableCustom<Long> {
+public class LoanTopupDetails  extends AbstractPersistableCustom {
 
         @OneToOne
         @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTrancheCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTrancheCharge.java
index 9d1bb36..267c20b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTrancheCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTrancheCharge.java
@@ -28,7 +28,7 @@ import org.apache.fineract.portfolio.charge.domain.Charge;
 
 @Entity
 @Table(name = "m_loan_tranche_charges")
-public class LoanTrancheCharge extends AbstractPersistableCustom<Long> {
+public class LoanTrancheCharge extends AbstractPersistableCustom {
 
     @ManyToOne(cascade = CascadeType.ALL, optional = false)
     @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTrancheDisbursementCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTrancheDisbursementCharge.java
index 73fe0e4..9a309ba 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTrancheDisbursementCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTrancheDisbursementCharge.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name="m_loan_tranche_disbursement_charge")
-public class LoanTrancheDisbursementCharge extends AbstractPersistableCustom<Long> {
+public class LoanTrancheDisbursementCharge extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "loan_charge_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTransaction.java
index 5956a8e..83cfaba 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTransaction.java
@@ -60,7 +60,7 @@ import org.joda.time.LocalDateTime;
  */
 @Entity
 @Table(name = "m_loan_transaction", uniqueConstraints = { @UniqueConstraint(columnNames = { "external_id" }, name = "external_id_UNIQUE") })
-public class LoanTransaction extends AbstractPersistableCustom<Long> {
+public class LoanTransaction extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTransactionToRepaymentScheduleMapping.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTransactionToRepaymentScheduleMapping.java
index cc2d50c..cea9f34 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTransactionToRepaymentScheduleMapping.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTransactionToRepaymentScheduleMapping.java
@@ -31,7 +31,7 @@ import org.apache.fineract.organisation.monetary.domain.Money;
 
 @Entity
 @Table(name = "m_loan_transaction_repayment_schedule_mapping")
-public class LoanTransactionToRepaymentScheduleMapping extends AbstractPersistableCustom<Long> {
+public class LoanTransactionToRepaymentScheduleMapping extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false, cascade = CascadeType.PERSIST)
     @JoinColumn(name = "loan_repayment_schedule_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/Guarantor.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/Guarantor.java
index 4c60d13..3164918 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/Guarantor.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/Guarantor.java
@@ -42,7 +42,7 @@ import org.apache.fineract.portfolio.loanaccount.guarantor.GuarantorConstants.GU
 
 @Entity
 @Table(name = "m_guarantor")
-public class Guarantor extends AbstractPersistableCustom<Long> {
+public class Guarantor extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/GuarantorFundingDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/GuarantorFundingDetails.java
index 25f5ebb..0f70c22 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/GuarantorFundingDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/GuarantorFundingDetails.java
@@ -36,7 +36,7 @@ import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
 @Entity
 @Table(name = "m_guarantor_funding_details")
-public class GuarantorFundingDetails extends AbstractPersistableCustom<Long> {
+public class GuarantorFundingDetails extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "guarantor_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/GuarantorFundingTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/GuarantorFundingTransaction.java
index 231f56d..56ff79f 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/GuarantorFundingTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/domain/GuarantorFundingTransaction.java
@@ -31,7 +31,7 @@ import org.apache.fineract.portfolio.savings.domain.DepositAccountOnHoldTransact
 
 @Entity
 @Table(name = "m_guarantor_transaction")
-public class GuarantorFundingTransaction extends AbstractPersistableCustom<Long> {
+public class GuarantorFundingTransaction extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "guarantor_fund_detail_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanRepaymentScheduleHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanRepaymentScheduleHistory.java
index df78fed..516912e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanRepaymentScheduleHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanRepaymentScheduleHistory.java
@@ -35,7 +35,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_loan_repayment_schedule_history")
-public class LoanRepaymentScheduleHistory extends AbstractPersistableCustom<Long> {
+public class LoanRepaymentScheduleHistory extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "loan_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/domain/LoanRescheduleRequest.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/domain/LoanRescheduleRequest.java
index da8461a..e86ab0f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/domain/LoanRescheduleRequest.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/domain/LoanRescheduleRequest.java
@@ -43,7 +43,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_loan_reschedule_request")
-public class LoanRescheduleRequest extends AbstractPersistableCustom<Long> {
+public class LoanRescheduleRequest extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "loan_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProduct.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProduct.java
index d64dd56..5d78a58 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProduct.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProduct.java
@@ -77,7 +77,7 @@ import org.joda.time.LocalDate;
 @Table(name = "m_product_loan", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unq_name"),
         @UniqueConstraint(columnNames = { "external_id" }, name = "external_id_UNIQUE"),
         @UniqueConstraint(columnNames = { "short_name" }, name = "unq_short_name") })
-public class LoanProduct extends AbstractPersistableCustom<Long> {
+public class LoanProduct extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "fund_id", nullable = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductBorrowerCycleVariations.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductBorrowerCycleVariations.java
index d0d4300..280bbd9 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductBorrowerCycleVariations.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductBorrowerCycleVariations.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_product_loan_variations_borrower_cycle")
-public class LoanProductBorrowerCycleVariations extends AbstractPersistableCustom<Long> {
+public class LoanProductBorrowerCycleVariations extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "loan_product_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductConfigurableAttributes.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductConfigurableAttributes.java
index bf2ab98..3d9133c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductConfigurableAttributes.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductConfigurableAttributes.java
@@ -31,7 +31,7 @@ import org.apache.fineract.portfolio.loanproduct.LoanProductConstants;
 
 @Entity
 @Table(name = "m_product_loan_configurable_attributes")
-public class LoanProductConfigurableAttributes extends AbstractPersistableCustom<Long> implements Serializable {
+public class LoanProductConfigurableAttributes extends AbstractPersistableCustom implements Serializable {
 
     @ManyToOne
     @JoinColumn(name = "loan_product_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductFloatingRates.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductFloatingRates.java
index 2f36cc8..cb430d3 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductFloatingRates.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductFloatingRates.java
@@ -36,7 +36,7 @@ import org.apache.fineract.portfolio.floatingrates.domain.FloatingRate;
 
 @Entity
 @Table(name = "m_product_loan_floating_rates")
-public class LoanProductFloatingRates extends AbstractPersistableCustom<Long> {
+public class LoanProductFloatingRates extends AbstractPersistableCustom {
 
     @OneToOne
     @JoinColumn(name = "loan_product_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductGuaranteeDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductGuaranteeDetails.java
index 5c2efcc..8f246a2 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductGuaranteeDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductGuaranteeDetails.java
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.loanproduct.LoanProductConstants;
 
 @Entity
 @Table(name = "m_product_loan_guarantee_details")
-public class LoanProductGuaranteeDetails extends AbstractPersistableCustom<Long> {
+public class LoanProductGuaranteeDetails extends AbstractPersistableCustom {
 
     @OneToOne
     @JoinColumn(name = "loan_product_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductInterestRecalculationDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductInterestRecalculationDetails.java
index 9b34734..ab338c2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductInterestRecalculationDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductInterestRecalculationDetails.java
@@ -36,7 +36,7 @@ import org.apache.fineract.portfolio.loanproduct.LoanProductConstants;
 
 @Entity
 @Table(name = "m_product_loan_recalculation_details")
-public class LoanProductInterestRecalculationDetails extends AbstractPersistableCustom<Long> {
+public class LoanProductInterestRecalculationDetails extends AbstractPersistableCustom {
 
     @OneToOne
     @JoinColumn(name = "product_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductVariableInstallmentConfig.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductVariableInstallmentConfig.java
index bad0cef..889fd95 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductVariableInstallmentConfig.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductVariableInstallmentConfig.java
@@ -31,7 +31,7 @@ import org.apache.fineract.portfolio.loanproduct.LoanProductConstants;
 
 @Entity
 @Table(name = "m_product_loan_variable_installment_config")
-public class LoanProductVariableInstallmentConfig extends AbstractPersistableCustom<Long> {
+public class LoanProductVariableInstallmentConfig extends AbstractPersistableCustom {
 
     @OneToOne
     @JoinColumn(name = "loan_product_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanTransactionProcessingStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanTransactionProcessingStrategy.java
index e6e28a5..f5c3168 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanTransactionProcessingStrategy.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanTransactionProcessingStrategy.java
@@ -26,7 +26,7 @@ import org.apache.fineract.portfolio.loanproduct.data.TransactionProcessingStrat
 
 @Entity
 @Table(name = "ref_loan_transaction_processing_strategy")
-public class LoanTransactionProcessingStrategy extends AbstractPersistableCustom<Long> {
+public class LoanTransactionProcessingStrategy extends AbstractPersistableCustom {
 
     @Column(name = "code", unique = true)
     private String code;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/productmix/domain/ProductMix.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/productmix/domain/ProductMix.java
index 7079949..4ca7d30 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/productmix/domain/ProductMix.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/productmix/domain/ProductMix.java
@@ -27,7 +27,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
 
 @Entity
 @Table(name = "m_product_mix")
-public class ProductMix extends AbstractPersistableCustom<Long> {
+public class ProductMix extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "product_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/meeting/attendance/domain/ClientAttendance.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/meeting/attendance/domain/ClientAttendance.java
index b47673b..e28a859 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/meeting/attendance/domain/ClientAttendance.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/meeting/attendance/domain/ClientAttendance.java
@@ -30,7 +30,7 @@ import org.apache.fineract.portfolio.meeting.domain.Meeting;
 
 @Entity
 @Table(name = "m_client_attendance", uniqueConstraints = { @UniqueConstraint(columnNames = { "client_id", "meeting_id" }, name = "unique_client_meeting_attendance") })
-public class ClientAttendance extends AbstractPersistableCustom<Long> {
+public class ClientAttendance extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "client_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/meeting/domain/Meeting.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/meeting/domain/Meeting.java
index 970c253..104b19a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/meeting/domain/Meeting.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/meeting/domain/Meeting.java
@@ -53,7 +53,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_meeting", uniqueConstraints = { @UniqueConstraint(columnNames = { "calendar_instance_id", "meeting_date" }, name = "unique_calendar_instance_id_meeting_date") })
-public class Meeting extends AbstractPersistableCustom<Long> {
+public class Meeting extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "calendar_instance_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/Note.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/Note.java
index fd44317..4e3e8a0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/Note.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/Note.java
@@ -39,7 +39,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_note")
-public class Note extends AbstractAuditableCustom<AppUser, Long> {
+public class Note extends AbstractAuditableCustom {
 
     @ManyToOne
     @JoinColumn(name = "client_id", nullable = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymentdetail/domain/PaymentDetail.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymentdetail/domain/PaymentDetail.java
index c101bfc..66351f2 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymentdetail/domain/PaymentDetail.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymentdetail/domain/PaymentDetail.java
@@ -34,7 +34,7 @@ import org.apache.fineract.portfolio.paymenttype.domain.PaymentType;
 
 @Entity
 @Table(name = "m_payment_detail")
-public final class PaymentDetail extends AbstractPersistableCustom<Long> {
+public final class PaymentDetail extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "payment_type_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/domain/PaymentType.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/domain/PaymentType.java
index 914dd42..36e5acb 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/domain/PaymentType.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/domain/PaymentType.java
@@ -31,7 +31,7 @@ import org.apache.fineract.portfolio.paymenttype.data.PaymentTypeData;
 
 @Entity
 @Table(name = "m_payment_type")
-public class PaymentType extends AbstractPersistableCustom<Long> {
+public class PaymentType extends AbstractPersistableCustom {
 
     @Column(name = "value")
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/rate/domain/Rate.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/rate/domain/Rate.java
index 50d322a..444cda3 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/rate/domain/Rate.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/rate/domain/Rate.java
@@ -41,7 +41,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 @Entity
 @Table(name = "m_rate", uniqueConstraints = {
     @UniqueConstraint(columnNames = {"name"}, name = "name")})
-public class Rate extends AbstractAuditableCustom<AppUser, Long> {
+public class Rate extends AbstractAuditableCustom {
 
   @Column(name = "name", length = 250, unique = true)
   private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java
index a6a4d94..2974d0f 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java
@@ -28,7 +28,7 @@ import org.apache.fineract.portfolio.interestratechart.domain.InterestIncentives
 
 @Entity
 @Table(name = "m_deposit_account_interest_incentives")
-public class DepositAccountInterestIncentive extends AbstractPersistableCustom<Long> {
+public class DepositAccountInterestIncentive extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "deposit_account_interest_rate_slab_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java
index a75684a..d09aec5 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java
@@ -28,7 +28,7 @@ import org.apache.fineract.portfolio.interestratechart.domain.InterestIncentives
 
 @Entity
 @Table(name = "m_savings_interest_incentives")
-public class DepositAccountInterestIncentives extends AbstractPersistableCustom<Long> {
+public class DepositAccountInterestIncentives extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "deposit_account_interest_rate_slab_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java
index b5d09f3..068d926 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java
@@ -41,7 +41,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_savings_account_interest_rate_chart")
-public class DepositAccountInterestRateChart extends AbstractPersistableCustom<Long> {
+public class DepositAccountInterestRateChart extends AbstractPersistableCustom {
 
     @Embedded
     private InterestRateChartFields chartFields;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java
index a4cced7..3c4c292 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java
@@ -35,7 +35,7 @@ import org.apache.fineract.portfolio.interestratechart.domain.InterestRateChartS
 
 @Entity
 @Table(name = "m_savings_account_interest_rate_slab")
-public class DepositAccountInterestRateChartSlabs extends AbstractPersistableCustom<Long> {
+public class DepositAccountInterestRateChartSlabs extends AbstractPersistableCustom {
 
     @Embedded
     private InterestRateChartSlabFields slabFields;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
index 3e31cc6..c321fc0 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
@@ -38,7 +38,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_deposit_account_on_hold_transaction")
-public class DepositAccountOnHoldTransaction extends AbstractPersistableCustom<Long> {
+public class DepositAccountOnHoldTransaction extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "savings_account_id", nullable = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountRecurringDetail.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountRecurringDetail.java
index 8c1fd7c..0a6c32e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountRecurringDetail.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountRecurringDetail.java
@@ -43,7 +43,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_deposit_account_recurring_detail")
-public class DepositAccountRecurringDetail extends AbstractPersistableCustom<Long> {
+public class DepositAccountRecurringDetail extends AbstractPersistableCustom {
 
     @Column(name = "mandatory_recommended_deposit_amount", scale = 6, precision = 19, nullable = true)
     private BigDecimal mandatoryRecommendedDepositAmount;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java
index acb55f7..3b833a5 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java
@@ -52,7 +52,7 @@ import org.joda.time.Years;
 
 @Entity
 @Table(name = "m_deposit_account_term_and_preclosure")
-public class DepositAccountTermAndPreClosure extends AbstractPersistableCustom<Long> {
+public class DepositAccountTermAndPreClosure extends AbstractPersistableCustom {
 
     @Column(name = "deposit_amount", scale = 6, precision = 19, nullable = true)
     private BigDecimal depositAmount;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java
index a5ea5ab..70b755a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java
@@ -30,7 +30,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_deposit_product_recurring_detail")
-public class DepositProductRecurringDetail extends AbstractPersistableCustom<Long> {
+public class DepositProductRecurringDetail extends AbstractPersistableCustom {
 
     @Embedded
     private DepositRecurringDetail recurringDetail;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java
index aea2d97..869f448 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java
@@ -31,7 +31,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_deposit_product_term_and_preclosure")
-public class DepositProductTermAndPreClosure extends AbstractPersistableCustom<Long> {
+public class DepositProductTermAndPreClosure extends AbstractPersistableCustom {
 
     @Embedded
     private DepositPreClosureDetail preClosureDetail;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositScheduleInstallment.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositScheduleInstallment.java
index e8e0f1d..fa52402 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositScheduleInstallment.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositScheduleInstallment.java
@@ -35,7 +35,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_mandatory_savings_schedule")
-public class RecurringDepositScheduleInstallment extends AbstractAuditableCustom<AppUser, Long> {
+public class RecurringDepositScheduleInstallment extends AbstractAuditableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "savings_account_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
index 2fa29c6..a0e6920 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
@@ -125,7 +125,7 @@ import org.springframework.util.CollectionUtils;
 @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
 @DiscriminatorColumn(name = "deposit_type_enum", discriminatorType = DiscriminatorType.INTEGER)
 @DiscriminatorValue("100")
-public class SavingsAccount extends AbstractPersistableCustom<Long> {
+public class SavingsAccount extends AbstractPersistableCustom {
 
     @Version
     int version;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
index 0c2c337..34c838e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
@@ -57,7 +57,7 @@ import org.joda.time.MonthDay;
  */
 @Entity
 @Table(name = "m_savings_account_charge")
-public class SavingsAccountCharge extends AbstractPersistableCustom<Long> {
+public class SavingsAccountCharge extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "savings_account_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java
index 467d338..e2a7fbf 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_savings_account_charge_paid_by")
-public class SavingsAccountChargePaidBy extends AbstractPersistableCustom<Long> {
+public class SavingsAccountChargePaidBy extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "savings_account_transaction_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
index 3846db8..c1532b6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
@@ -60,7 +60,7 @@ import org.springframework.util.CollectionUtils;
  */
 @Entity
 @Table(name = "m_savings_account_transaction")
-public final class SavingsAccountTransaction extends AbstractPersistableCustom<Long> {
+public final class SavingsAccountTransaction extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "savings_account_id", referencedColumnName="id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java
index c4c6016..1f6ce1e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java
@@ -30,7 +30,7 @@ import org.apache.fineract.portfolio.tax.domain.TaxComponent;
 
 @Entity
 @Table(name = "m_savings_account_transaction_tax_details")
-public class SavingsAccountTransactionTaxDetails extends AbstractPersistableCustom<Long> {
+public class SavingsAccountTransactionTaxDetails extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "tax_component_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
index 56d9d65..9da08fb 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
@@ -34,7 +34,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_savings_officer_assignment_history")
-public class SavingsOfficerAssignmentHistory extends AbstractAuditableCustom<AppUser, Long> {
+public class SavingsOfficerAssignmentHistory extends AbstractAuditableCustom {
 
     @ManyToOne
     @JoinColumn(name = "account_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java
index 6dc6953..bdc79fc 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java
@@ -96,7 +96,7 @@ import org.joda.time.LocalDate;
 @Inheritance
 @DiscriminatorColumn(name = "deposit_type_enum", discriminatorType = DiscriminatorType.INTEGER)
 @DiscriminatorValue("100")
-public class SavingsProduct extends AbstractPersistableCustom<Long> {
+public class SavingsProduct extends AbstractPersistableCustom {
 
     @Column(name = "name", nullable = false, unique = true)
     protected String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/domain/SelfBeneficiariesTPT.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/domain/SelfBeneficiariesTPT.java
index 90586e1..ea9b7c5 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/domain/SelfBeneficiariesTPT.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/domain/SelfBeneficiariesTPT.java
@@ -32,7 +32,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 @Entity
 @Table(name = "m_selfservice_beneficiaries_tpt", uniqueConstraints = { @UniqueConstraint(columnNames = {
         "name", "app_user_id", "is_active" }, name = "name") })
-public class SelfBeneficiariesTPT extends AbstractPersistableCustom<Long> {
+public class SelfBeneficiariesTPT extends AbstractPersistableCustom {
 
     @Column(name = "app_user_id", nullable = false)
     private Long appUserId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/domain/Pocket.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/domain/Pocket.java
index da0ea8d..9ceabfc 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/domain/Pocket.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/domain/Pocket.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 @Entity
 @Table(name = "m_pocket", uniqueConstraints = {
         @UniqueConstraint(columnNames = { "app_user_id" }, name = "unique_app_user") })
-public class Pocket extends AbstractPersistableCustom<Long> {
+public class Pocket extends AbstractPersistableCustom {
 
     @Column(name = "app_user_id", length = 20, nullable = false)
     private Long appUserId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/domain/PocketAccountMapping.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/domain/PocketAccountMapping.java
index 536547c..c18a535 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/domain/PocketAccountMapping.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/domain/PocketAccountMapping.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 @SuppressWarnings("serial")
 @Entity
 @Table(name = "m_pocket_accounts_mapping")
-public class PocketAccountMapping extends AbstractPersistableCustom<Long> {
+public class PocketAccountMapping extends AbstractPersistableCustom {
 
     @Column(name = "pocket_id", length = 20, nullable = false)
     private Long pocketId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/domain/SelfServiceRegistration.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/domain/SelfServiceRegistration.java
index ac091f2..9f9916b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/domain/SelfServiceRegistration.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/domain/SelfServiceRegistration.java
@@ -31,7 +31,7 @@ import org.apache.fineract.portfolio.client.domain.Client;
 
 @Entity
 @Table(name = "request_audit_table")
-public class SelfServiceRegistration extends AbstractPersistableCustom<Long> {
+public class SelfServiceRegistration extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "client_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccount.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccount.java
index e54cd7a..3f0f82f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccount.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccount.java
@@ -47,7 +47,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_share_account")
-public class ShareAccount extends AbstractPersistableCustom<Long> {
+public class ShareAccount extends AbstractPersistableCustom {
 
     @ManyToOne
     @JoinColumn(name = "client_id", nullable = true)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountCharge.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountCharge.java
index dccd2b2..f9a4e77 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountCharge.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountCharge.java
@@ -35,7 +35,7 @@ import org.apache.fineract.portfolio.charge.domain.ChargeTimeType;
 
 @Entity
 @Table(name = "m_share_account_charge")
-public class ShareAccountCharge extends AbstractPersistableCustom<Long> {
+public class ShareAccountCharge extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "account_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountChargePaidBy.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountChargePaidBy.java
index acbe2d9..b9be358 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountChargePaidBy.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountChargePaidBy.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_share_account_charge_paid_by")
-public class ShareAccountChargePaidBy extends AbstractPersistableCustom<Long>{
+public class ShareAccountChargePaidBy extends AbstractPersistableCustom{
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "share_transaction_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountDividendDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountDividendDetails.java
index 630cf5a..5427010 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountDividendDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountDividendDetails.java
@@ -26,7 +26,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_share_account_dividend_details")
-public class ShareAccountDividendDetails extends AbstractPersistableCustom<Long> {
+public class ShareAccountDividendDetails extends AbstractPersistableCustom {
 
     @Column(name = "account_id", nullable = false)
     private Long shareAccountId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountTransaction.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountTransaction.java
index ee14a33..493e266 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountTransaction.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/domain/ShareAccountTransaction.java
@@ -36,7 +36,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_share_account_transactions")
-public class ShareAccountTransaction extends AbstractPersistableCustom<Long> {
+public class ShareAccountTransaction extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "account_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProduct.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProduct.java
index d274504..5f1ba65 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProduct.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProduct.java
@@ -51,7 +51,7 @@ import org.joda.time.DateTime;
 @SuppressWarnings("serial")
 @Entity
 @Table(name = "m_share_product")
-public class ShareProduct extends AbstractAuditableCustom<AppUser, Long> {
+public class ShareProduct extends AbstractAuditableCustom {
 
     @Column(name = "name", nullable = false, unique = true)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductDividendPayOutDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductDividendPayOutDetails.java
index 56eb8f3..f53d48e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductDividendPayOutDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductDividendPayOutDetails.java
@@ -38,7 +38,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_share_product_dividend_pay_out")
-public class ShareProductDividendPayOutDetails extends AbstractAuditableCustom<AppUser, Long> {
+public class ShareProductDividendPayOutDetails extends AbstractAuditableCustom {
 
     @Column(name = "product_id", nullable = true)
     private Long shareProductId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductMarketPrice.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductMarketPrice.java
index 1ada050..642342d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductMarketPrice.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductMarketPrice.java
@@ -31,7 +31,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_share_product_market_price")
-public class ShareProductMarketPrice extends AbstractPersistableCustom<Long> {
+public class ShareProductMarketPrice extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false)
     @JoinColumn(name = "product_id", referencedColumnName = "id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java
index 09ceb4e..307dfce 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java
@@ -49,7 +49,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_tax_component")
-public class TaxComponent extends AbstractAuditableCustom<AppUser, Long> {
+public class TaxComponent extends AbstractAuditableCustom {
 
     @Column(name = "name", length = 100)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java
index a1c2e1f..b355971 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java
@@ -31,7 +31,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_tax_component_history")
-public class TaxComponentHistory extends AbstractAuditableCustom<AppUser, Long> {
+public class TaxComponentHistory extends AbstractAuditableCustom {
 
     @Column(name = "percentage", scale = 6, precision = 19, nullable = false)
     private BigDecimal percentage;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java
index 97eb93e..75347b6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java
@@ -40,7 +40,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_tax_group")
-public class TaxGroup extends AbstractAuditableCustom<AppUser, Long> {
+public class TaxGroup extends AbstractAuditableCustom {
 
     @Column(name = "name", length = 100)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java
index f923d1b..2460275 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java
@@ -36,7 +36,7 @@ import org.joda.time.LocalDate;
 
 @Entity
 @Table(name = "m_tax_group_mappings")
-public class TaxGroupMappings extends AbstractAuditableCustom<AppUser, Long> {
+public class TaxGroupMappings extends AbstractAuditableCustom {
 
     @ManyToOne
     @JoinColumn(name = "tax_component_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Component.java b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Component.java
index 517f62f..f8eba19 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Component.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Component.java
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_survey_components")
-public class Component extends AbstractPersistableCustom<Long> {
+public class Component extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "survey_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/LookupTable.java b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/LookupTable.java
index 034fb45..9714ef5 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/LookupTable.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/LookupTable.java
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_survey_lookup_tables")
-public class LookupTable extends AbstractPersistableCustom<Long> {
+public class LookupTable extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "survey_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Question.java b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Question.java
index 61644c4..405330e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Question.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Question.java
@@ -32,7 +32,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_survey_questions")
-public class Question extends AbstractPersistableCustom<Long> {
+public class Question extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "survey_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Response.java b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Response.java
index 748a0c7..6f06854 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Response.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Response.java
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_survey_responses")
-public class Response extends AbstractPersistableCustom<Long> {
+public class Response extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "question_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Scorecard.java b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Scorecard.java
index 3587ee1..97a2a5b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Scorecard.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Scorecard.java
@@ -34,7 +34,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_survey_scorecards")
-public class Scorecard extends AbstractPersistableCustom<Long> {
+public class Scorecard extends AbstractPersistableCustom {
 
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name = "survey_id")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Survey.java b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Survey.java
index 994b0f3..7a62ad5 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Survey.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/spm/domain/Survey.java
@@ -34,7 +34,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_surveys")
-public class Survey extends AbstractPersistableCustom<Long> {
+public class Survey extends AbstractPersistableCustom {
 
     @OneToMany(mappedBy = "survey", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval=true)
     @OrderBy("sequenceNo")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/template/domain/Template.java b/fineract-provider/src/main/java/org/apache/fineract/template/domain/Template.java
index 02a66d6..54f165d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/template/domain/Template.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/template/domain/Template.java
@@ -41,7 +41,7 @@ import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 @Entity
 @Table(name = "m_template", uniqueConstraints = {@UniqueConstraint(columnNames = {"name"}, name = "unq_name")})
-public class Template extends AbstractPersistableCustom<Long> {
+public class Template extends AbstractPersistableCustom {
 
     @Column(name = "name", nullable = false, unique = true)
     private String name;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/template/domain/TemplateMapper.java b/fineract-provider/src/main/java/org/apache/fineract/template/domain/TemplateMapper.java
index a3aac47..fd94024 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/template/domain/TemplateMapper.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/template/domain/TemplateMapper.java
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_templatemappers")
-public class TemplateMapper extends AbstractPersistableCustom<Long> {
+public class TemplateMapper extends AbstractPersistableCustom {
 
     @Column(name = "mapperorder")
     private int mapperorder;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUser.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUser.java
index 9d864b2..baafc7d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUser.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUser.java
@@ -59,7 +59,7 @@ import org.springframework.security.core.userdetails.User;
 
 @Entity
 @Table(name = "m_appuser", uniqueConstraints = @UniqueConstraint(columnNames = { "username" }, name = "username_org"))
-public class AppUser extends AbstractPersistableCustom<Long> implements PlatformUser {
+public class AppUser extends AbstractPersistableCustom implements PlatformUser {
 
     private final static Logger logger = LoggerFactory.getLogger(AppUser.class);
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUserClientMapping.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUserClientMapping.java
index d51089e..4ab5b5e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUserClientMapping.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUserClientMapping.java
@@ -28,7 +28,7 @@ import org.apache.fineract.portfolio.client.domain.Client;
 
 @Entity
 @Table(name = "m_selfservice_user_client_mapping")
-public class AppUserClientMapping extends AbstractPersistableCustom<Long> {
+public class AppUserClientMapping extends AbstractPersistableCustom {
 
     @ManyToOne(optional = false, cascade = CascadeType.PERSIST)
     @JoinColumn(name = "client_id", nullable = false)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUserPreviousPassword.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUserPreviousPassword.java
index 81a7b8d..160005d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUserPreviousPassword.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/AppUserPreviousPassword.java
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
 
 @Entity
 @Table(name = "m_appuser_previous_password")
-public class AppUserPreviousPassword extends AbstractPersistableCustom<Long> {
+public class AppUserPreviousPassword extends AbstractPersistableCustom {
 
     @Column(name = "user_id", nullable = false)
     private Long userId;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/PasswordValidationPolicy.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/PasswordValidationPolicy.java
index 56c7f49..66e0114 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/PasswordValidationPolicy.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/PasswordValidationPolicy.java
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_password_validation_policy")
-public class PasswordValidationPolicy extends AbstractPersistableCustom<Long> {
+public class PasswordValidationPolicy extends AbstractPersistableCustom {
 
     @Column(name = "regex", nullable = false)
     private String regex;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/Permission.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/Permission.java
index eb7421e..4d6c979 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/Permission.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/Permission.java
@@ -26,7 +26,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "m_permission")
-public class Permission extends AbstractPersistableCustom<Long> implements Serializable {
+public class Permission extends AbstractPersistableCustom implements Serializable {
 
     @Column(name = "grouping", nullable = false, length = 45)
     private String grouping;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/Role.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/Role.java
index 5c2dc75..3dad910 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/Role.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/domain/Role.java
@@ -38,7 +38,7 @@ import org.apache.fineract.useradministration.data.RoleData;
 
 @Entity
 @Table(name = "m_role", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unq_name") })
-public class Role extends AbstractPersistableCustom<Long> implements Serializable {
+public class Role extends AbstractPersistableCustom implements Serializable {
 
     @Column(name = "name", unique = true, nullable = false, length = 100)
     private String name;


[fineract] 04/04: Fixed: Checkstyle Violations

Posted by vo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vorburger pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git

commit beee2e5330b35f07ed16ba7019b57b8ab75e4e02
Author: thesmallstar <ma...@gmail.com>
AuthorDate: Sun Apr 5 20:46:10 2020 +0530

    Fixed: Checkstyle Violations
---
 .../java/org/apache/fineract/accounting/closure/domain/GLClosure.java    | 1 -
 .../org/apache/fineract/accounting/journalentry/domain/JournalEntry.java | 1 -
 .../src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java       | 1 -
 .../main/java/org/apache/fineract/infrastructure/hooks/domain/Hook.java  | 1 -
 .../java/org/apache/fineract/portfolio/calendar/domain/Calendar.java     | 1 -
 .../org/apache/fineract/portfolio/client/domain/ClientIdentifier.java    | 1 -
 .../apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java   | 1 -
 .../portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java       | 1 -
 .../portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java   | 1 -
 .../src/main/java/org/apache/fineract/portfolio/note/domain/Note.java    | 1 -
 .../portfolio/savings/domain/RecurringDepositScheduleInstallment.java    | 1 -
 .../portfolio/savings/domain/SavingsOfficerAssignmentHistory.java        | 1 -
 .../shareproducts/domain/ShareProductDividendPayOutDetails.java          | 1 -
 .../main/java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java | 1 -
 .../org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java    | 1 -
 .../src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java | 1 -
 .../java/org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java  | 1 -
 17 files changed, 17 deletions(-)

diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/domain/GLClosure.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/domain/GLClosure.java
index 9d7840d..eb855cc 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/domain/GLClosure.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/domain/GLClosure.java
@@ -34,7 +34,6 @@ import org.apache.fineract.accounting.closure.api.GLClosureJsonInputParams;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.organisation.office.domain.Office;
-import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "acc_gl_closure", uniqueConstraints = { @UniqueConstraint(columnNames = { "office_id", "closing_date" }, name = "office_id_closing_date") })
diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java
index 7a19501..56cb6c8 100755
--- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java
@@ -36,7 +36,6 @@ import org.apache.fineract.portfolio.client.domain.ClientTransaction;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
-import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "acc_gl_journal_entry")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java
index b92807a..3a7096f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java
@@ -29,7 +29,6 @@ import org.apache.fineract.adhocquery.api.AdHocJsonInputParams;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.infrastructure.security.utils.SQLInjectionValidator;
-import org.apache.fineract.useradministration.domain.AppUser;
 
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Hook.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Hook.java
index e65f8ef..ec559f8 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Hook.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/hooks/domain/Hook.java
@@ -42,7 +42,6 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.template.domain.Template;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.springframework.util.CollectionUtils;
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
index c938df6..873de83 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
@@ -47,7 +47,6 @@ import org.apache.fineract.portfolio.calendar.exception.CalendarDateException;
 import org.apache.fineract.portfolio.calendar.exception.CalendarParameterUpdateNotSupportedException;
 import org.apache.fineract.portfolio.calendar.service.CalendarUtils;
 import org.apache.fineract.portfolio.common.domain.NthDayType;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 import org.joda.time.LocalDateTime;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
index 99829c2..a8a0799 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
@@ -30,7 +30,6 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.fineract.infrastructure.codes.domain.CodeValue;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
-import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_client_identifier", uniqueConstraints = {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java
index 11b8575..ecdd4bd 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/domain/StaffAssignmentHistory.java
@@ -28,7 +28,6 @@ import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.organisation.staff.domain.Staff;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java
index 779ef44..c521af5 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanOfficerAssignmentHistory.java
@@ -29,7 +29,6 @@ import javax.persistence.TemporalType;
 import org.apache.commons.lang.ObjectUtils;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.organisation.staff.domain.Staff;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
index 3555cbf..946f77a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentScheduleInstallment.java
@@ -36,7 +36,6 @@ import javax.persistence.TemporalType;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
 import org.apache.fineract.organisation.monetary.domain.Money;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/Note.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/Note.java
index 4e3e8a0..c573339 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/Note.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/Note.java
@@ -35,7 +35,6 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
 import org.apache.fineract.portfolio.shareaccounts.domain.ShareAccount;
-import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_note")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositScheduleInstallment.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositScheduleInstallment.java
index fa52402..15f0d93 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositScheduleInstallment.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositScheduleInstallment.java
@@ -30,7 +30,6 @@ import javax.persistence.TemporalType;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
 import org.apache.fineract.organisation.monetary.domain.Money;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
index 9da08fb..24862a9 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
@@ -29,7 +29,6 @@ import javax.persistence.TemporalType;
 import org.apache.commons.lang.ObjectUtils;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.organisation.staff.domain.Staff;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductDividendPayOutDetails.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductDividendPayOutDetails.java
index f53d48e..ac5b6e3 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductDividendPayOutDetails.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProductDividendPayOutDetails.java
@@ -33,7 +33,6 @@ import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountDividendDetails;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java
index 307dfce..b09bf5a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponent.java
@@ -44,7 +44,6 @@ import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.infrastructure.core.service.DateUtils;
 import org.apache.fineract.portfolio.tax.api.TaxApiConstants;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java
index b355971..6afa827 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentHistory.java
@@ -26,7 +26,6 @@ import javax.persistence.Table;
 import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 
 @Entity
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java
index 75347b6..50a524d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroup.java
@@ -36,7 +36,6 @@ import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.portfolio.tax.api.TaxApiConstants;
 import org.apache.fineract.portfolio.tax.exception.TaxMappingNotFoundException;
-import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "m_tax_group")
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java
index 2460275..c8dfca8 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupMappings.java
@@ -31,7 +31,6 @@ import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
 import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
 import org.apache.fineract.portfolio.tax.api.TaxApiConstants;
-import org.apache.fineract.useradministration.domain.AppUser;
 import org.joda.time.LocalDate;
 
 @Entity


[fineract] 01/04: add missing doc to AbstractPersistableCustom & AbstractAuditableCustom

Posted by vo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vorburger pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git

commit ae4117052bd3eb8965f88bd6b8d98ef17693d812
Author: Michael Vorburger <mi...@vorburger.ch>
AuthorDate: Mon Mar 23 01:31:23 2020 +0100

    add missing doc to AbstractPersistableCustom & AbstractAuditableCustom
---
 .../core/domain/AbstractAuditableCustom.java       | 51 +---------------------
 .../core/domain/AbstractPersistableCustom.java     | 45 +++++++++++--------
 2 files changed, 28 insertions(+), 68 deletions(-)

diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractAuditableCustom.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractAuditableCustom.java
index 0328081..41a615f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractAuditableCustom.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractAuditableCustom.java
@@ -35,9 +35,9 @@ import org.springframework.data.jpa.domain.AbstractAuditable;
 
 /**
  * A custom copy of {@link AbstractAuditable} to override the column names used
- * on database.
+ * on database.  It also uses Instant instead of LocalDateTime for created and modified.
  *
- * Abstract base class for auditable entities. Stores the audition values in
+ * Abstract base class for auditable entities. Stores the audit values in
  * persistent fields.
  *
  * @param <U>
@@ -66,88 +66,41 @@ public abstract class AbstractAuditableCustom<U, PK extends Serializable> extend
     @Temporal(TemporalType.TIMESTAMP)
     private Date lastModifiedDate;
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.springframework.data.domain.Auditable#getCreatedBy()
-     */
     @Override
     public Optional<AppUser> getCreatedBy() {
         return Optional.ofNullable(this.createdBy);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.springframework.data.domain.Auditable#setCreatedBy(java.lang.Object)
-     */
     @Override
     public void setCreatedBy(final AppUser createdBy) {
-
         this.createdBy = createdBy;
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.springframework.data.domain.Auditable#getCreatedDate()
-     */
     @Override
     public Optional<Instant> getCreatedDate() {
         return null == this.createdDate ? Optional.empty() : Optional.of(this.createdDate.toInstant());
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.springframework.data.domain.Auditable#setCreatedDate(T)
-     */
     @Override
     public void setCreatedDate(final Instant createdDate) {
         this.createdDate = null == createdDate ? null : Date.from(createdDate);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.springframework.data.domain.Auditable#getLastModifiedBy()
-     */
     @Override
     public Optional<AppUser> getLastModifiedBy() {
         return Optional.ofNullable(this.lastModifiedBy);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.springframework.data.domain.Auditable#setLastModifiedBy(java.lang
-     * .Object)
-     */
     @Override
     public void setLastModifiedBy(final AppUser lastModifiedBy) {
-
         this.lastModifiedBy = lastModifiedBy;
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.springframework.data.domain.Auditable#getLastModifiedDate()
-     */
     @Override
     public Optional<Instant> getLastModifiedDate() {
         return null == this.lastModifiedDate ? Optional.empty() : Optional.of(this.lastModifiedDate.toInstant());
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.springframework.data.domain.Auditable#setLastModifiedDate(T)
-     */
     @Override
     public void setLastModifiedDate(final Instant lastModifiedDate) {
         this.lastModifiedDate = null == lastModifiedDate ? null : Date.from(lastModifiedDate);
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java
index 2e0586a..6a16c3d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractPersistableCustom.java
@@ -25,30 +25,37 @@ import javax.persistence.Id;
 import javax.persistence.MappedSuperclass;
 import org.springframework.data.domain.Persistable;
 
-
+/**
+ * Abstract base class for entities.
+ *
+ * Inspired by {@link org.springframework.data.jpa.domain.AbstractPersistable}, but
+ * Id is always Long (and this class thus does not require generic parameterization),
+ * and auto-generation is of strategy {@link javax.persistence.GenerationType#IDENTITY}.
+ *
+ * The {@link #equals(Object)} and {@link #hashCode()} methods are NOT implemented here,
+ * which is untypical for JPA (it's usually implemented based on the Id), because
+ * "we end up with issues on OpenJPA" (TODO clarify this).
+ */
 @MappedSuperclass
 public abstract class AbstractPersistableCustom<PK extends Serializable> implements Persistable<Long>, Serializable {
 
-        private static final long serialVersionUID = 9181640245194392646L;
-
-        @Id
-        @GeneratedValue(strategy = GenerationType.IDENTITY)
-        private Long id;
-
-        @Override
-        public Long getId() {
-                return id;
-        }
+    private static final long serialVersionUID = 9181640245194392646L;
 
-        protected void setId(final Long id) {
-                this.id = id;
-        }
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
 
-        @Override
-        public boolean isNew() {
+    @Override
+    public Long getId() {
+        return id;
+    }
 
-                return null == this.id;
-        }
+    protected void setId(final Long id) {
+        this.id = id;
+    }
 
-        // We have removed toString(), hashCode() and equals() methods here, because by adding them here, we end up with issues on OpenJPA.
+    @Override
+    public boolean isNew() {
+        return null == this.id;
+    }
 }