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

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


The following commit(s) were added to refs/heads/develop by this push:
     new a9b5f12af7 FINERACT-2421: Modernize SQL query construction using Java 
21 Text Blocks and standardize naming (Phase 10)
a9b5f12af7 is described below

commit a9b5f12af7ddd9464e3e6307e085aff1137623ed
Author: Aman Mittal <[email protected]>
AuthorDate: Fri Mar 6 22:58:47 2026 +0530

    FINERACT-2421: Modernize SQL query construction using Java 21 Text Blocks 
and standardize naming (Phase 10)
---
 ...ProvisioningEntriesReadPlatformServiceImpl.java |  57 ++++-----
 ...AccountNumberFormatReadPlatformServiceImpl.java |  16 +--
 .../service/BulkImportWorkbookServiceImpl.java     |  13 +-
 .../EmailCampaignReadPlatformServiceImpl.java      | 108 ++++++++---------
 .../EmailConfigurationReadPlatformServiceImpl.java |  18 ++-
 .../service/EmailReadPlatformServiceImpl.java      |  36 +++---
 .../campaigns/sms/mapper/SmsCampaignMapper.java    |  55 +++++----
 .../FineractEntityAccessReadServiceImpl.java       | 132 ++++++++++-----------
 .../sms/service/SmsReadPlatformServiceImpl.java    |  34 +++---
 ...rovisioningCriteriaReadPlatformServiceImpl.java |  16 +--
 .../account/mapper/AccountTransfersMapper.java     |  80 ++++++-------
 .../AccountTransfersReadPlatformServiceImpl.java   |  21 ++--
 .../service/LoanReadPlatformServiceImpl.java       |  19 +--
 .../SavingsAccountReadPlatformServiceImpl.java     |   5 +-
 .../SelfAccountTransferReadServiceImpl.java        |  27 +++--
 .../ShareAccountReadPlatformServiceImpl.java       | 114 ++++++++----------
 .../service/ScorecardReadPlatformServiceImpl.java  |  32 ++---
 .../FloatingRatesReadPlatformServiceImpl.java      | 104 +++++++++-------
 18 files changed, 430 insertions(+), 457 deletions(-)

diff --git 
a/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
 
b/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
index bd2bf8ad61..d34c559719 100644
--- 
a/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
+++ 
b/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
@@ -114,11 +114,11 @@ public class ProvisioningEntriesReadPlatformServiceImpl 
implements ProvisioningE
 
     private static final class ProvisioningEntryDataMapper implements 
RowMapper<ProvisioningEntryData> {
 
-        private final StringBuilder sqlQuery = new StringBuilder()
-                .append(" entry.id, entry.journal_entry_created, 
entry.createdby_id, entry.created_date, created.username as createduser,")
-                .append("entry.lastmodifiedby_id, modified.username as 
modifieduser, entry.lastmodified_date ")
-                .append("from m_provisioning_history entry ").append("left 
JOIN m_appuser created ON created.id = entry.createdby_id ")
-                .append("left JOIN m_appuser modified ON modified.id = 
entry.lastmodifiedby_id ");
+        private static final String PROVISIONING_ENTRY_SCHEMA = """
+                 entry.id, entry.journal_entry_created, entry.createdby_id, 
entry.created_date, created.username as createduser,
+                entry.lastmodifiedby_id, modified.username as modifieduser, 
entry.lastmodified_date
+                from m_provisioning_history entry left JOIN m_appuser created 
ON created.id = entry.createdby_id
+                left JOIN m_appuser modified ON modified.id = 
entry.lastmodifiedby_id\s""";
 
         @Override
         @SuppressWarnings("unused")
@@ -138,22 +138,22 @@ public class ProvisioningEntriesReadPlatformServiceImpl 
implements ProvisioningE
         }
 
         public String getSchema() {
-            return sqlQuery.toString();
+            return PROVISIONING_ENTRY_SCHEMA;
         }
 
     }
 
     private static final class LoanProductProvisioningEntryRowMapper 
implements RowMapper<LoanProductProvisioningEntryData> {
 
-        private final StringBuilder sqlQuery = new StringBuilder().append(
-                " entry.id, entry.history_id as historyId, office_id, 
entry.criteria_id as criteriaid, office.name as officename, product.name as 
productname, entry.product_id, ")
-                .append("category_id, category.category_name, liability.id as 
liabilityid, liability.gl_code as liabilitycode, liability.name as 
liabilityname, ")
-                .append("expense.id as expenseid, expense.gl_code as 
expensecode, expense.name as expensename, entry.currency_code, 
entry.overdue_in_days, entry.reseve_amount from 
m_loanproduct_provisioning_entry entry ")
-                .append("left join m_office office ON office.id = 
entry.office_id ")
-                .append("left join m_product_loan product ON product.id = 
entry.product_id ")
-                .append("left join m_provision_category category ON 
category.id = entry.category_id ")
-                .append("left join acc_gl_account liability ON liability.id = 
entry.liability_account ")
-                .append("left join acc_gl_account expense ON expense.id = 
entry.expense_account ");
+        private static final String LOAN_PRODUCT_PROVISIONING_ENTRY_SCHEMA = 
"""
+                 entry.id, entry.history_id as historyId, office_id, 
entry.criteria_id as criteriaid, office.name as officename, product.name as 
productname, entry.product_id,
+                category_id, category.category_name, liability.id as 
liabilityid, liability.gl_code as liabilitycode, liability.name as 
liabilityname,
+                expense.id as expenseid, expense.gl_code as expensecode, 
expense.name as expensename, entry.currency_code, entry.overdue_in_days, 
entry.reseve_amount from m_loanproduct_provisioning_entry entry
+                left join m_office office ON office.id = entry.office_id
+                left join m_product_loan product ON product.id = 
entry.product_id
+                left join m_provision_category category ON category.id = 
entry.category_id
+                left join acc_gl_account liability ON liability.id = 
entry.liability_account
+                left join acc_gl_account expense ON expense.id = 
entry.expense_account\s""";
 
         @Override
         @SuppressWarnings("unused")
@@ -185,19 +185,19 @@ public class ProvisioningEntriesReadPlatformServiceImpl 
implements ProvisioningE
         }
 
         public String getSchema() {
-            return sqlQuery.toString();
+            return LOAN_PRODUCT_PROVISIONING_ENTRY_SCHEMA;
         }
     }
 
     private static final class ProvisioningEntryDataMapperWithSumReserved 
implements RowMapper<ProvisioningEntryData> {
 
-        private final StringBuilder sqlQuery = new StringBuilder()
-                .append(" entry.id, journal_entry_created, createdby_id, 
created_date, created.username as createduser,")
-                .append("lastmodifiedby_id, modified.username as modifieduser, 
lastmodified_date, SUM(reserved.reseve_amount) as totalreserved ")
-                .append("from m_provisioning_history entry ")
-                .append("JOIN m_loanproduct_provisioning_entry reserved on 
entry.id = reserved.history_id ")
-                .append("left JOIN m_appuser created ON created.id = 
entry.createdby_id ")
-                .append("left JOIN m_appuser modified ON modified.id = 
entry.lastmodifiedby_id ");
+        private static final String PROVISIONING_ENTRY_SUM_RESERVED_SCHEMA = 
"""
+                 entry.id, journal_entry_created, createdby_id, created_date, 
created.username as createduser,
+                lastmodifiedby_id, modified.username as modifieduser, 
lastmodified_date, SUM(reserved.reseve_amount) as totalreserved
+                from m_provisioning_history entry
+                JOIN m_loanproduct_provisioning_entry reserved on entry.id = 
reserved.history_id
+                left JOIN m_appuser created ON created.id = entry.createdby_id
+                left JOIN m_appuser modified ON modified.id = 
entry.lastmodifiedby_id\s""";
 
         @Override
         @SuppressWarnings("unused")
@@ -217,7 +217,7 @@ public class ProvisioningEntriesReadPlatformServiceImpl 
implements ProvisioningE
         }
 
         public String getSchema() {
-            return sqlQuery.toString();
+            return PROVISIONING_ENTRY_SUM_RESERVED_SCHEMA;
         }
 
     }
@@ -286,9 +286,10 @@ public class ProvisioningEntriesReadPlatformServiceImpl 
implements ProvisioningE
 
     private static final class ProvisioningEntryIdDateRowMapper implements 
RowMapper<ProvisioningEntryData> {
 
-        StringBuilder buff = new StringBuilder().append("select history1.id, 
history1.created_date from m_provisioning_history history1 ")
-                .append("where history1.created_date = (select 
max(history2.created_date) from m_provisioning_history history2 ")
-                .append("where history2.journal_entry_created='1')");
+        private static final String PROVISIONING_ENTRY_ID_DATE_SCHEMA = """
+                select history1.id, history1.created_date from 
m_provisioning_history history1
+                where history1.created_date = (select 
max(history2.created_date) from m_provisioning_history history2
+                where history2.journal_entry_created='1')\s""";
 
         @Override
         public ProvisioningEntryData mapRow(ResultSet rs, int rowNum) throws 
SQLException {
@@ -306,7 +307,7 @@ public class ProvisioningEntriesReadPlatformServiceImpl 
implements ProvisioningE
         }
 
         public String schema() {
-            return buff.toString();
+            return PROVISIONING_ENTRY_ID_DATE_SCHEMA;
         }
     }
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
index 308ee6cee7..03bdae55d9 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
@@ -54,20 +54,14 @@ public class AccountNumberFormatReadPlatformServiceImpl 
implements AccountNumber
 
     private static final class AccountNumberFormatMapper implements 
RowMapper<AccountNumberFormatData> {
 
-        private final String schema;
+        private static final String ACCOUNT_NUMBER_FORMAT_SCHEMA = """
+                anf.id as id, anf.account_type_enum as accountTypeEnum, 
anf.prefix_type_enum as prefixTypeEnum, anf.prefix_character as prefixCharacter
+                from c_account_number_format anf\s""";
 
-        AccountNumberFormatMapper() {
-            final StringBuilder builder = new StringBuilder(400);
-
-            builder.append(
-                    " anf.id as id, anf.account_type_enum as accountTypeEnum, 
anf.prefix_type_enum as prefixTypeEnum, anf.prefix_character as 
prefixCharacter");
-            builder.append(" from c_account_number_format anf ");
-
-            this.schema = builder.toString();
-        }
+        AccountNumberFormatMapper() {}
 
         public String schema() {
-            return this.schema;
+            return ACCOUNT_NUMBER_FORMAT_SCHEMA;
         }
 
         @Override
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java
index 78cf8d35cd..221115c176 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java
@@ -227,13 +227,14 @@ public class BulkImportWorkbookServiceImpl implements 
BulkImportWorkbookService
 
     private static final class ImportMapper implements RowMapper<ImportData> {
 
+        private static final String IMPORT_SCHEMA = """
+                i.id as id, i.document_id as documentId, d.name as name, 
i.import_time as importTime, i.end_time as endTime,
+                i.completed as completed, i.total_records as totalRecords, 
i.success_count as successCount,
+                i.failure_count as failureCount, i.createdby_id as createdBy
+                from m_import_document i inner join m_document d on 
i.document_id=d.id where i.entity_type= ?\s""";
+
         public String schema() {
-            final StringBuilder sql = new StringBuilder();
-            sql.append("i.id as id, i.document_id as documentId, d.name as 
name, i.import_time as importTime, i.end_time as endTime, ")
-                    .append("i.completed as completed, i.total_records as 
totalRecords, i.success_count as successCount, ")
-                    .append("i.failure_count as failureCount, i.createdby_id 
as createdBy ")
-                    .append("from m_import_document i inner join m_document d 
on i.document_id=d.id ").append("where i.entity_type= ? ");
-            return sql.toString();
+            return IMPORT_SCHEMA;
         }
 
         @Override
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
index ce0aee75c6..8067ea08ac 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
@@ -63,45 +63,41 @@ public class EmailCampaignReadPlatformServiceImpl 
implements EmailCampaignReadPl
 
     private static final class EmailCampaignMapper implements 
RowMapper<EmailCampaignData> {
 
-        final String schema;
-
-        private EmailCampaignMapper() {
-            final StringBuilder sql = new StringBuilder(400);
-            sql.append("ec.id as id, ");
-            sql.append("ec.campaign_name as campaignName, ");
-            sql.append("ec.campaign_type as campaignType, ");
-            sql.append("ec.business_rule_id as businessRuleId, ");
-            sql.append("ec.email_subject as emailSubject, ");
-            sql.append("ec.email_message as emailMessage, ");
-            sql.append("ec.email_attachment_file_format as 
emailAttachmentFileFormat, ");
-            sql.append("sr.id as stretchyReportId, ");
-            sql.append("sr.report_name as reportName, sr.report_type as 
reportType, sr.report_subtype as reportSubType, ");
-            sql.append("sr.report_category as reportCategory, sr.report_sql as 
reportSql, sr.description as reportDescription, ");
-            sql.append("sr.core_report as coreReport, sr.use_report as 
useReport, ");
-            sql.append("ec.stretchy_report_param_map as 
stretchyReportParamMap, ");
-            sql.append("ec.param_value as paramValue, ");
-            sql.append("ec.status_enum as statusEnum, ");
-            sql.append("ec.recurrence as recurrence, ");
-            sql.append("ec.recurrence_start_date as recurrenceStartDate, ");
-            sql.append("ec.next_trigger_date as nextTriggerDate, ");
-            sql.append("ec.last_trigger_date as lastTriggerDate, ");
-            sql.append("ec.submittedon_date as submittedOnDate, ");
-            sql.append("sbu.username as submittedByUsername, ");
-            sql.append("ec.closedon_date as closedOnDate, ");
-            sql.append("clu.username as closedByUsername, ");
-            sql.append("acu.username as activatedByUsername, ");
-            sql.append("ec.approvedon_date as activatedOnDate ");
-            sql.append("from scheduled_email_campaign ec ");
-            sql.append("left join m_appuser sbu on sbu.id = 
ec.submittedon_userid ");
-            sql.append("left join m_appuser acu on acu.id = 
ec.approvedon_userid ");
-            sql.append("left join m_appuser clu on clu.id = ec.closedon_userid 
");
-            sql.append("left join stretchy_report sr on ec.stretchy_report_id 
= sr.id");
-
-            this.schema = sql.toString();
-        }
+        private static final String EMAIL_CAMPAIGN_SCHEMA = """
+                ec.id as id,
+                ec.campaign_name as campaignName,
+                ec.campaign_type as campaignType,
+                ec.business_rule_id as businessRuleId,
+                ec.email_subject as emailSubject,
+                ec.email_message as emailMessage,
+                ec.email_attachment_file_format as emailAttachmentFileFormat,
+                sr.id as stretchyReportId,
+                sr.report_name as reportName, sr.report_type as reportType, 
sr.report_subtype as reportSubType,
+                sr.report_category as reportCategory, sr.report_sql as 
reportSql, sr.description as reportDescription,
+                sr.core_report as coreReport, sr.use_report as useReport,
+                ec.stretchy_report_param_map as stretchyReportParamMap,
+                ec.param_value as paramValue,
+                ec.status_enum as statusEnum,
+                ec.recurrence as recurrence,
+                ec.recurrence_start_date as recurrenceStartDate,
+                ec.next_trigger_date as nextTriggerDate,
+                ec.last_trigger_date as lastTriggerDate,
+                ec.submittedon_date as submittedOnDate,
+                sbu.username as submittedByUsername,
+                ec.closedon_date as closedOnDate,
+                clu.username as closedByUsername,
+                acu.username as activatedByUsername,
+                ec.approvedon_date as activatedOnDate
+                from scheduled_email_campaign ec
+                left join m_appuser sbu on sbu.id = ec.submittedon_userid
+                left join m_appuser acu on acu.id = ec.approvedon_userid
+                left join m_appuser clu on clu.id = ec.closedon_userid
+                left join stretchy_report sr on ec.stretchy_report_id = 
sr.id\s""";
+
+        private EmailCampaignMapper() {}
 
         public String schema() {
-            return this.schema;
+            return EMAIL_CAMPAIGN_SCHEMA;
         }
 
         @Override
@@ -144,28 +140,24 @@ public class EmailCampaignReadPlatformServiceImpl 
implements EmailCampaignReadPl
 
     private static final class BusinessRuleMapper implements 
ResultSetExtractor<List<EmailBusinessRulesData>> {
 
-        final String schema;
-
-        private BusinessRuleMapper() {
-            final StringBuilder sql = new StringBuilder(300);
-            sql.append("sr.id as id, ");
-            sql.append("sr.report_name as reportName, ");
-            sql.append("sr.report_type as reportType, ");
-            sql.append("sr.report_subtype as reportSubType, ");
-            sql.append("sr.description as description, ");
-            sql.append("sp.parameter_variable as params, ");
-            sql.append("sp.parameter_FormatType as paramType, ");
-            sql.append("sp.parameter_label as paramLabel, ");
-            sql.append("sp.parameter_name as paramName ");
-            sql.append("from stretchy_report sr ");
-            sql.append("left join stretchy_report_parameter as srp on 
srp.report_id = sr.id ");
-            sql.append("left join stretchy_parameter as sp on sp.id = 
srp.parameter_id ");
-
-            this.schema = sql.toString();
-        }
+        private static final String BUSINESS_RULE_SCHEMA = """
+                sr.id as id,
+                sr.report_name as reportName,
+                sr.report_type as reportType,
+                sr.report_subtype as reportSubType,
+                sr.description as description,
+                sp.parameter_variable as params,
+                sp.parameter_FormatType as paramType,
+                sp.parameter_label as paramLabel,
+                sp.parameter_name as paramName
+                from stretchy_report sr
+                left join stretchy_report_parameter as srp on srp.report_id = 
sr.id
+                left join stretchy_parameter as sp on sp.id = 
srp.parameter_id\s""";
+
+        private BusinessRuleMapper() {}
 
         public String schema() {
-            return this.schema;
+            return BUSINESS_RULE_SCHEMA;
         }
 
         @Override
@@ -238,7 +230,7 @@ public class EmailCampaignReadPlatformServiceImpl 
implements EmailCampaignReadPl
     public EmailCampaignData retrieveOne(Long resourceId) {
         final boolean isVisible = true;
         try {
-            final String sql = "select " + this.emailCampaignMapper.schema + " 
where ec.id = ? and ec.is_visible = ?";
+            final String sql = "select " + this.emailCampaignMapper.schema() + 
" where ec.id = ? and ec.is_visible = ?";
             return this.jdbcTemplate.queryForObject(sql, 
this.emailCampaignMapper, new Object[] { resourceId, isVisible }); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             throw new EmailCampaignNotFound(resourceId, e);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
index 2c274607db..4b30d7eaa9 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
@@ -46,20 +46,16 @@ public class EmailConfigurationReadPlatformServiceImpl 
implements EmailConfigura
 
     private static final class EmailConfigurationRowMapper implements 
RowMapper<EmailConfigurationData> {
 
-        final String schema;
+        private static final String EMAIL_CONFIGURATION_SCHEMA = """
+                cnf.id as id,
+                cnf.name as name,
+                cnf.value as value
+                from scheduled_email_configuration cnf\s""";
 
-        EmailConfigurationRowMapper() {
-            final StringBuilder sql = new StringBuilder(300);
-            sql.append("cnf.id as id, ");
-            sql.append("cnf.name as name, ");
-            sql.append("cnf.value as value ");
-            sql.append("from scheduled_email_configuration cnf");
-
-            this.schema = sql.toString();
-        }
+        EmailConfigurationRowMapper() {}
 
         public String schema() {
-            return this.schema;
+            return EMAIL_CONFIGURATION_SCHEMA;
         }
 
         @Override
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
index 955ca561f6..e52bc00b45 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
@@ -52,28 +52,24 @@ public class EmailReadPlatformServiceImpl implements 
EmailReadPlatformService {
 
     private static final class EmailMapper implements RowMapper<EmailData> {
 
-        final String schema;
-
-        EmailMapper() {
-            final StringBuilder sql = new StringBuilder(300);
-            sql.append(" emo.id as id, ");
-            sql.append("emo.group_id as groupId, ");
-            sql.append("emo.client_id as clientId, ");
-            sql.append("emo.staff_id as staffId, ");
-            sql.append("emo.campaign_name as campaignName, ");
-            sql.append("emo.status_enum as statusId, ");
-            sql.append("emo.email_address as emailAddress, ");
-            sql.append("emo.submittedon_date as sentDate, ");
-            sql.append("emo.email_subject as emailSubject, ");
-            sql.append("emo.message as message, ");
-            sql.append("emo.error_message as errorMessage ");
-            sql.append("from " + tableName() + " emo");
-
-            this.schema = sql.toString();
-        }
+        private static final String EMAIL_SCHEMA = """
+                 emo.id as id,
+                emo.group_id as groupId,
+                emo.client_id as clientId,
+                emo.staff_id as staffId,
+                emo.campaign_name as campaignName,
+                emo.status_enum as statusId,
+                emo.email_address as emailAddress,
+                emo.submittedon_date as sentDate,
+                emo.email_subject as emailSubject,
+                emo.message as message,
+                emo.error_message as errorMessage
+                from scheduled_email_messages_outbound emo\s""";
+
+        EmailMapper() {}
 
         public String schema() {
-            return this.schema;
+            return EMAIL_SCHEMA;
         }
 
         public String tableName() {
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/mapper/SmsCampaignMapper.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/mapper/SmsCampaignMapper.java
index 588c96de10..e6bff53053 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/mapper/SmsCampaignMapper.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/mapper/SmsCampaignMapper.java
@@ -48,34 +48,33 @@ public class SmsCampaignMapper implements 
RowMapper<SmsCampaignData> {
     }
 
     private String buildCampaignColumn() {
-        final StringBuilder sql = new StringBuilder(400);
-        sql.append("sc.id as id, ");
-        sql.append("sc.campaign_name as campaignName, ");
-        sql.append("sc.campaign_type as campaignType, ");
-        sql.append("sc.campaign_trigger_type as triggerType, ");
-        sql.append("sc.report_id as runReportId, ");
-        sql.append("sc.message as message, ");
-        sql.append("sc.param_value as paramValue, ");
-        sql.append("sc.status_enum as status, ");
-        sql.append("sc.recurrence as recurrence, ");
-        sql.append("sc.recurrence_start_date as recurrenceStartDate, ");
-        sql.append("sc.next_trigger_date as nextTriggerDate, ");
-        sql.append("sc.last_trigger_date as lastTriggerDate, ");
-        sql.append("sc.submittedon_date as submittedOnDate, ");
-        sql.append("sbu.username as submittedByUsername, ");
-        sql.append("sc.closedon_date as closedOnDate, ");
-        sql.append("clu.username as closedByUsername, ");
-        sql.append("acu.username as activatedByUsername, ");
-        sql.append("sc.approvedon_date as activatedOnDate, ");
-        sql.append("sr.report_name as reportName, ");
-        sql.append("provider_id as providerId, ");
-        sql.append("sc.is_notification as isNotification ");
-        sql.append("from sms_campaign sc ");
-        sql.append("left join m_appuser sbu on sbu.id = sc.submittedon_userid 
");
-        sql.append("left join m_appuser acu on acu.id = sc.approvedon_userid 
");
-        sql.append("left join m_appuser clu on clu.id = sc.closedon_userid ");
-        sql.append("left join stretchy_report sr on sr.id = sc.report_id ");
-        return sql.toString();
+        return """
+                sc.id as id,
+                sc.campaign_name as campaignName,
+                sc.campaign_type as campaignType,
+                sc.campaign_trigger_type as triggerType,
+                sc.report_id as runReportId,
+                sc.message as message,
+                sc.param_value as paramValue,
+                sc.status_enum as status,
+                sc.recurrence as recurrence,
+                sc.recurrence_start_date as recurrenceStartDate,
+                sc.next_trigger_date as nextTriggerDate,
+                sc.last_trigger_date as lastTriggerDate,
+                sc.submittedon_date as submittedOnDate,
+                sbu.username as submittedByUsername,
+                sc.closedon_date as closedOnDate,
+                clu.username as closedByUsername,
+                acu.username as activatedByUsername,
+                sc.approvedon_date as activatedOnDate,
+                sr.report_name as reportName,
+                provider_id as providerId,
+                sc.is_notification as isNotification
+                from sms_campaign sc
+                left join m_appuser sbu on sbu.id = sc.submittedon_userid
+                left join m_appuser acu on acu.id = sc.approvedon_userid
+                left join m_appuser clu on clu.id = sc.closedon_userid
+                left join stretchy_report sr on sr.id = sc.report_id\s""";
     }
 
     @Override
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/service/FineractEntityAccessReadServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/service/FineractEntityAccessReadServiceImpl.java
index 22c1c0b3c5..767a768e2f 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/service/FineractEntityAccessReadServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/service/FineractEntityAccessReadServiceImpl.java
@@ -135,13 +135,14 @@ public class FineractEntityAccessReadServiceImpl 
implements FineractEntityAccess
 
     @SuppressFBWarnings("SLF4J_SIGN_ONLY_FORMAT")
     private String getSQLForRetriveEntityAccessFor() {
-        StringBuilder str = new StringBuilder("select  eem.rel_id as 
relId,eem.from_id as fromId, ");
-        str.append("eem.to_id as toId, eem.start_date as startDate, 
eem.end_date as endDate ");
-        str.append("from  m_entity_to_entity_mapping eem ");
-        str.append("where eem.rel_id = ? ");
-        str.append("and eem.from_id = ? ");
-        LOG.debug("{}", str);
-        return str.toString();
+        final String sql = """
+                select  eem.rel_id as relId,eem.from_id as fromId,
+                eem.to_id as toId, eem.start_date as startDate, eem.end_date 
as endDate
+                from  m_entity_to_entity_mapping eem
+                where eem.rel_id = ?
+                and eem.from_id = ?\s""";
+        LOG.debug("{}", sql);
+        return sql;
     }
 
     @Override
@@ -186,10 +187,10 @@ public class FineractEntityAccessReadServiceImpl 
implements FineractEntityAccess
 
     private static final class EntityRelationMapper implements 
RowMapper<FineractEntityRelationData> {
 
-        private final StringBuilder sqlBuilder = new StringBuilder("select id 
as id,code_name as mapping_Types from m_entity_relation ");
+        private static final String ENTITY_RELATION_SCHEMA = "select id as 
id,code_name as mapping_Types from m_entity_relation ";
 
         public String schema() {
-            return this.sqlBuilder.toString();
+            return ENTITY_RELATION_SCHEMA;
         }
 
         @Override
@@ -221,19 +222,16 @@ public class FineractEntityAccessReadServiceImpl 
implements FineractEntityAccess
 
     private static final class GetOneEntityMapper implements 
RowMapper<FineractEntityToEntityMappingData> {
 
-        private final String schema;
+        private static final String GET_ONE_ENTITY_SCHEMA = """
+                select eem.rel_id as relId,
+                eem.from_id as fromId,eem.to_Id as toId,eem.start_date as 
startDate,eem.end_date as endDate
+                from m_entity_to_entity_mapping eem
+                where eem.id= ?\s""";
 
-        GetOneEntityMapper() {
-
-            StringBuilder str = new StringBuilder("select eem.rel_id as relId, 
");
-            str.append("eem.from_id as fromId,eem.to_Id as toId,eem.start_date 
as startDate,eem.end_date as endDate ");
-            str.append("from m_entity_to_entity_mapping eem ");
-            str.append("where eem.id= ? ");
-            this.schema = str.toString();
-        }
+        GetOneEntityMapper() {}
 
         public String schema() {
-            return this.schema;
+            return GET_ONE_ENTITY_SCHEMA;
         }
 
         @Override
@@ -254,58 +252,54 @@ public class FineractEntityAccessReadServiceImpl 
implements FineractEntityAccess
 
     private static final class EntityToEntityMapper implements 
RowMapper<FineractEntityToEntityMappingData> {
 
-        private final String schema;
-
-        EntityToEntityMapper() {
-
-            StringBuilder str = new StringBuilder("select eem.id as mapId, ");
-            str.append("eem.rel_id as relId, ");
-            str.append("eem.from_id as from_id, ");
-            str.append("eem.to_id as to_id, ");
-            str.append("eem.start_date as startDate, ");
-            str.append("eem.end_date as endDate, ");
-            str.append("case er.code_name ");
-            str.append("when 'office_access_to_loan_products' then ");
-            str.append("o.name ");
-            str.append("when 'office_access_to_savings_products' then ");
-            str.append("o.name ");
-            str.append("when 'office_access_to_fees/charges' then ");
-            str.append("o.name ");
-            str.append("when 'role_access_to_loan_products' then ");
-            str.append("r.name ");
-            str.append("when 'role_access_to_savings_products' then ");
-            str.append("r.name ");
-            str.append("end as from_name, ");
-            str.append("case er.code_name ");
-            str.append("when 'office_access_to_loan_products' then ");
-            str.append("lp.name ");
-            str.append("when 'office_access_to_savings_products' then ");
-            str.append("sp.name ");
-            str.append("when 'office_access_to_fees/charges' then ");
-            str.append("charge.name ");
-            str.append("when 'role_access_to_loan_products' then ");
-            str.append("lp.name ");
-            str.append("when 'role_access_to_savings_products' then ");
-            str.append("sp.name ");
-            str.append("end as to_name, ");
-            str.append("er.code_name ");
-            str.append("from m_entity_to_entity_mapping eem ");
-            str.append("join m_entity_relation er on eem.rel_id = er.id ");
-            str.append("left join m_office o on er.from_entity_type = 1 and 
eem.from_id = o.id ");
-            str.append("left join m_role r on er.from_entity_type = 5 and 
eem.from_id = r.id ");
-            str.append("left join m_product_loan lp on er.to_entity_type = 2 
and eem.to_id = lp.id ");
-            str.append("left join m_savings_product sp on er.to_entity_type = 
3 and eem.to_id = sp.id ");
-            str.append("left join m_charge charge on er.to_entity_type = 4 and 
eem.to_id = charge.id ");
-            str.append("where ");
-            str.append("er.id = ? and ");
-            str.append("( ? = 0 or from_id = ? ) and ");
-            str.append("( ? = 0 or to_id = ? ) ");
-
-            this.schema = str.toString();
-        }
+        private static final String ENTITY_TO_ENTITY_SCHEMA = """
+                select eem.id as mapId,
+                eem.rel_id as relId,
+                eem.from_id as from_id,
+                eem.to_id as to_id,
+                eem.start_date as startDate,
+                eem.end_date as endDate,
+                case er.code_name
+                when 'office_access_to_loan_products' then
+                o.name
+                when 'office_access_to_savings_products' then
+                o.name
+                when 'office_access_to_fees/charges' then
+                o.name
+                when 'role_access_to_loan_products' then
+                r.name
+                when 'role_access_to_savings_products' then
+                r.name
+                end as from_name,
+                case er.code_name
+                when 'office_access_to_loan_products' then
+                lp.name
+                when 'office_access_to_savings_products' then
+                sp.name
+                when 'office_access_to_fees/charges' then
+                charge.name
+                when 'role_access_to_loan_products' then
+                lp.name
+                when 'role_access_to_savings_products' then
+                sp.name
+                end as to_name,
+                er.code_name
+                from m_entity_to_entity_mapping eem
+                join m_entity_relation er on eem.rel_id = er.id
+                left join m_office o on er.from_entity_type = 1 and 
eem.from_id = o.id
+                left join m_role r on er.from_entity_type = 5 and eem.from_id 
= r.id
+                left join m_product_loan lp on er.to_entity_type = 2 and 
eem.to_id = lp.id
+                left join m_savings_product sp on er.to_entity_type = 3 and 
eem.to_id = sp.id
+                left join m_charge charge on er.to_entity_type = 4 and 
eem.to_id = charge.id
+                where
+                er.id = ? and
+                ( ? = 0 or from_id = ? ) and
+                ( ? = 0 or to_id = ? )\s""";
+
+        EntityToEntityMapper() {}
 
         public String schema() {
-            return this.schema;
+            return ENTITY_TO_ENTITY_SCHEMA;
         }
 
         @Override
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/service/SmsReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/service/SmsReadPlatformServiceImpl.java
index eb1c4a8169..57ad8ba6c9 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/service/SmsReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/service/SmsReadPlatformServiceImpl.java
@@ -62,27 +62,23 @@ public class SmsReadPlatformServiceImpl implements 
SmsReadPlatformService {
 
     private static final class SmsMapper implements RowMapper<SmsData> {
 
-        final String schema;
-
-        SmsMapper() {
-            final StringBuilder sql = new StringBuilder(300);
-            sql.append("smo.id as id, ");
-            sql.append("smo.group_id as groupId, ");
-            sql.append("smo.client_id as clientId, ");
-            sql.append("smo.staff_id as staffId, ");
-            sql.append("smo.status_enum as statusId, ");
-            sql.append("smo.mobile_no as mobileNo, ");
-            sql.append("smo.message as message, ");
-            sql.append("smc.provider_id as providerId, ");
-            sql.append("smc.campaign_name as campaignName ");
-            sql.append("from sms_messages_outbound smo ");
-            sql.append("join sms_campaign smc on smc.id = smo.campaign_id ");
-
-            this.schema = sql.toString();
-        }
+        private static final String SMS_SCHEMA = """
+                 smo.id as id,
+                smo.group_id as groupId,
+                smo.client_id as clientId,
+                smo.staff_id as staffId,
+                smo.status_enum as statusId,
+                smo.mobile_no as mobileNo,
+                smo.message as message,
+                smc.provider_id as providerId,
+                smc.campaign_name as campaignName
+                from sms_messages_outbound smo
+                join sms_campaign smc on smc.id = smo.campaign_id\s""";
+
+        SmsMapper() {}
 
         public String schema() {
-            return this.schema;
+            return SMS_SCHEMA;
         }
 
         public String tableName() {
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/service/ProvisioningCriteriaReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/service/ProvisioningCriteriaReadPlatformServiceImpl.java
index dc837b13db..a75d5576d2 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/service/ProvisioningCriteriaReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/service/ProvisioningCriteriaReadPlatformServiceImpl.java
@@ -121,13 +121,13 @@ public class ProvisioningCriteriaReadPlatformServiceImpl 
implements Provisioning
 
     private static final class ProvisioningCriteriaDefinitionRowMapper 
implements RowMapper<ProvisioningCriteriaDefinitionData> {
 
-        private final StringBuilder sqlQuery = new StringBuilder()
-                .append("pc.id, pc.criteria_id, pc.category_id, 
mpc.category_name, pc.min_age, pc.max_age, ")
-                .append("pc.provision_percentage, pc.liability_account, 
pc.expense_account, lia.gl_code as liabilitycode, expe.gl_code as expensecode, 
")
-                .append("lia.name as liabilityname, expe.name as expensename 
").append("from m_provisioning_criteria_definition as pc ")
-                .append("LEFT JOIN acc_gl_account lia ON lia.id = 
pc.liability_account ")
-                .append("LEFT JOIN acc_gl_account expe ON expe.id = 
pc.expense_account ")
-                .append("LEFT JOIN m_provision_category mpc ON mpc.id = 
pc.category_id");
+        private static final String PROVISIONING_CRITERIA_DEFINITION_SCHEMA = 
"""
+                pc.id, pc.criteria_id, pc.category_id, mpc.category_name, 
pc.min_age, pc.max_age,
+                pc.provision_percentage, pc.liability_account, 
pc.expense_account, lia.gl_code as liabilitycode, expe.gl_code as expensecode,
+                lia.name as liabilityname, expe.name as expensename from 
m_provisioning_criteria_definition as pc
+                LEFT JOIN acc_gl_account lia ON lia.id = pc.liability_account
+                LEFT JOIN acc_gl_account expe ON expe.id = pc.expense_account
+                LEFT JOIN m_provision_category mpc ON mpc.id = 
pc.category_id\s""";
 
         @Override
         public ProvisioningCriteriaDefinitionData mapRow(final ResultSet rs, 
@SuppressWarnings("unused") final int rowNum)
@@ -153,7 +153,7 @@ public class ProvisioningCriteriaReadPlatformServiceImpl 
implements Provisioning
         }
 
         public String schema() {
-            return sqlQuery.toString();
+            return PROVISIONING_CRITERIA_DEFINITION_SCHEMA;
         }
     }
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/mapper/AccountTransfersMapper.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/mapper/AccountTransfersMapper.java
index 4263b4e4d4..2f241819d4 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/mapper/AccountTransfersMapper.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/mapper/AccountTransfersMapper.java
@@ -37,50 +37,46 @@ import org.springframework.stereotype.Component;
 @Component
 public final class AccountTransfersMapper implements 
RowMapper<AccountTransferData> {
 
-    private final String schemaSql;
-
-    public AccountTransfersMapper() {
-        final StringBuilder sqlBuilder = new StringBuilder(400);
-        sqlBuilder.append("att.id as id, att.is_reversed as isReversed,");
-        sqlBuilder.append("att.transaction_date as transferDate, att.amount as 
transferAmount,");
-        sqlBuilder.append("att.description as transferDescription,");
-        sqlBuilder.append("att.currency_code as currencyCode, 
att.currency_digits as currencyDigits,");
-        sqlBuilder.append("att.currency_multiplesof as inMultiplesOf, ");
-        sqlBuilder.append("curr.name as currencyName, 
curr.internationalized_name_code as currencyNameCode, ");
-        sqlBuilder.append("curr.display_symbol as currencyDisplaySymbol, ");
-        sqlBuilder.append("fromoff.id as fromOfficeId, fromoff.name as 
fromOfficeName,");
-        sqlBuilder.append("tooff.id as toOfficeId, tooff.name as 
toOfficeName,");
-        sqlBuilder.append("fromclient.id as fromClientId, 
fromclient.display_name as fromClientName,");
-        sqlBuilder.append("toclient.id as toClientId, toclient.display_name as 
toClientName,");
-        sqlBuilder.append("fromsavacc.id as fromSavingsAccountId, 
fromsavacc.account_no as fromSavingsAccountNo,");
-        sqlBuilder.append("fromloanacc.id as fromLoanAccountId, 
fromloanacc.account_no as fromLoanAccountNo,");
-        sqlBuilder.append("tosavacc.id as toSavingsAccountId, 
tosavacc.account_no as toSavingsAccountNo,");
-        sqlBuilder.append("toloanacc.id as toLoanAccountId, 
toloanacc.account_no as toLoanAccountNo,");
-        sqlBuilder.append("fromsavtran.id as 
fromSavingsAccountTransactionId,");
-        sqlBuilder.append("fromsavtran.transaction_type_enum as 
fromSavingsAccountTransactionType,");
-        sqlBuilder.append("tosavtran.id as toSavingsAccountTransactionId,");
-        sqlBuilder.append("tosavtran.transaction_type_enum as 
toSavingsAccountTransactionType");
-        sqlBuilder.append(" FROM m_account_transfer_transaction att ");
-        sqlBuilder.append("left join m_account_transfer_details atd on atd.id 
= att.account_transfer_details_id ");
-        sqlBuilder.append("join m_currency curr on curr.code = 
att.currency_code ");
-        sqlBuilder.append("join m_office fromoff on fromoff.id = 
atd.from_office_id ");
-        sqlBuilder.append("join m_office tooff on tooff.id = atd.to_office_id 
");
-        sqlBuilder.append("join m_client fromclient on fromclient.id = 
atd.from_client_id ");
-        sqlBuilder.append("join m_client toclient on toclient.id = 
atd.to_client_id ");
-        sqlBuilder.append("left join m_savings_account fromsavacc on 
fromsavacc.id = atd.from_savings_account_id ");
-        sqlBuilder.append("left join m_loan fromloanacc on fromloanacc.id = 
atd.from_loan_account_id ");
-        sqlBuilder.append("left join m_savings_account tosavacc on tosavacc.id 
= atd.to_savings_account_id ");
-        sqlBuilder.append("left join m_loan toloanacc on toloanacc.id = 
atd.to_loan_account_id ");
-        sqlBuilder.append("left join m_savings_account_transaction fromsavtran 
on fromsavtran.id = att.from_savings_transaction_id ");
-        sqlBuilder.append("left join m_savings_account_transaction tosavtran 
on tosavtran.id = att.to_savings_transaction_id ");
-        sqlBuilder.append("left join m_loan_transaction fromloantran on 
fromloantran.id = att.from_savings_transaction_id ");
-        sqlBuilder.append("left join m_loan_transaction toloantran on 
toloantran.id = att.to_savings_transaction_id ");
-
-        this.schemaSql = sqlBuilder.toString();
-    }
+    private static final String ACCOUNT_TRANSFER_SCHEMA = """
+            att.id as id, att.is_reversed as isReversed,
+            att.transaction_date as transferDate, att.amount as transferAmount,
+            att.description as transferDescription,
+            att.currency_code as currencyCode, att.currency_digits as 
currencyDigits,
+            att.currency_multiplesof as inMultiplesOf,
+            curr.name as currencyName, curr.internationalized_name_code as 
currencyNameCode,
+            curr.display_symbol as currencyDisplaySymbol,
+            fromoff.id as fromOfficeId, fromoff.name as fromOfficeName,
+            tooff.id as toOfficeId, tooff.name as toOfficeName,
+            fromclient.id as fromClientId, fromclient.display_name as 
fromClientName,
+            toclient.id as toClientId, toclient.display_name as toClientName,
+            fromsavacc.id as fromSavingsAccountId, fromsavacc.account_no as 
fromSavingsAccountNo,
+            fromloanacc.id as fromLoanAccountId, fromloanacc.account_no as 
fromLoanAccountNo,
+            tosavacc.id as toSavingsAccountId, tosavacc.account_no as 
toSavingsAccountNo,
+            toloanacc.id as toLoanAccountId, toloanacc.account_no as 
toLoanAccountNo,
+            fromsavtran.id as fromSavingsAccountTransactionId,
+            fromsavtran.transaction_type_enum as 
fromSavingsAccountTransactionType,
+            tosavtran.id as toSavingsAccountTransactionId,
+            tosavtran.transaction_type_enum as toSavingsAccountTransactionType
+             FROM m_account_transfer_transaction att
+            left join m_account_transfer_details atd on atd.id = 
att.account_transfer_details_id
+            join m_currency curr on curr.code = att.currency_code
+            join m_office fromoff on fromoff.id = atd.from_office_id
+            join m_office tooff on tooff.id = atd.to_office_id
+            join m_client fromclient on fromclient.id = atd.from_client_id
+            join m_client toclient on toclient.id = atd.to_client_id
+            left join m_savings_account fromsavacc on fromsavacc.id = 
atd.from_savings_account_id
+            left join m_loan fromloanacc on fromloanacc.id = 
atd.from_loan_account_id
+            left join m_savings_account tosavacc on tosavacc.id = 
atd.to_savings_account_id
+            left join m_loan toloanacc on toloanacc.id = atd.to_loan_account_id
+            left join m_savings_account_transaction fromsavtran on 
fromsavtran.id = att.from_savings_transaction_id
+            left join m_savings_account_transaction tosavtran on tosavtran.id 
= att.to_savings_transaction_id
+            left join m_loan_transaction fromloantran on fromloantran.id = 
att.from_savings_transaction_id
+            left join m_loan_transaction toloantran on toloantran.id = 
att.to_savings_transaction_id\s""";
+
+    public AccountTransfersMapper() {}
 
     public String schema() {
-        return this.schemaSql;
+        return ACCOUNT_TRANSFER_SCHEMA;
     }
 
     @Override
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
index b7cbd2e38b..91e04a2bba 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
@@ -412,15 +412,16 @@ public class AccountTransfersReadPlatformServiceImpl 
implements AccountTransfers
 
     @Override
     public BigDecimal getTotalTransactionAmount(Long accountId, Integer 
accountType, LocalDate transactionDate) {
-        StringBuilder sqlBuilder = new StringBuilder(" select 
sum(trans.amount) as totalTransactionAmount ");
-        sqlBuilder.append(" from m_account_transfer_details as det ");
-        sqlBuilder.append(" inner join m_account_transfer_transaction as trans 
");
-        sqlBuilder.append(" on det.id = trans.account_transfer_details_id ");
-        sqlBuilder.append(" where trans.is_reversed = false ");
-        sqlBuilder.append(" and trans.transaction_date = ? ");
-        sqlBuilder.append(" and IF(1=?, det.from_loan_account_id = ?, 
det.from_savings_account_id = ?) ");
-
-        return this.jdbcTemplate.queryForObject(sqlBuilder.toString(), 
BigDecimal.class, DATE_TIME_FORMATTER.format(transactionDate),
-                accountType, accountId, accountId);
+        final String sql = """
+                select sum(trans.amount) as totalTransactionAmount
+                from m_account_transfer_details as det
+                inner join m_account_transfer_transaction as trans
+                on det.id = trans.account_transfer_details_id
+                where trans.is_reversed = false
+                and trans.transaction_date = ?
+                and IF(1=?, det.from_loan_account_id = ?, 
det.from_savings_account_id = ?)\s""";
+
+        return this.jdbcTemplate.queryForObject(sql, BigDecimal.class, 
DATE_TIME_FORMATTER.format(transactionDate), accountType, accountId,
+                accountId);
     }
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
index 89985f9eb0..893d80aef7 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
@@ -2049,16 +2049,17 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService, Loa
     @Override
     public Collection<Long> 
retrieveLoanIdsWithPendingIncomePostingTransactions() {
         LocalDate currentdate = DateUtils.getBusinessLocalDate();
-        StringBuilder sqlBuilder = new StringBuilder().append(" select 
distinct loan.id from m_loan as loan ").append(
-                " inner join m_loan_recalculation_details as recdet on 
(recdet.loan_id = loan.id and recdet.is_compounding_to_be_posted_as_transaction 
is not null and recdet.is_compounding_to_be_posted_as_transaction = true) ")
-                .append(" inner join m_loan_repayment_schedule as repsch on 
repsch.loan_id = loan.id ")
-                .append(" inner join 
m_loan_interest_recalculation_additional_details as adddet on 
adddet.loan_repayment_schedule_id = repsch.id ")
-                .append(" left join m_loan_transaction as trans on 
(trans.is_reversed <> true and trans.transaction_type_enum = 19 and 
trans.loan_id = loan.id and trans.transaction_date = adddet.effective_date) ")
-                .append(" where loan.loan_status_id = 300 ").append(" and 
loan.is_npa = false and loan.is_charged_off = false ")
-                .append(" and adddet.effective_date is not null ").append(" 
and trans.transaction_date is null ")
-                .append(" and adddet.effective_date < ? ");
+        final String sql = """
+                select distinct loan.id from m_loan as loan
+                inner join m_loan_recalculation_details as recdet on 
(recdet.loan_id = loan.id and recdet.is_compounding_to_be_posted_as_transaction 
is not null and recdet.is_compounding_to_be_posted_as_transaction = true)
+                inner join m_loan_repayment_schedule as repsch on 
repsch.loan_id = loan.id
+                inner join m_loan_interest_recalculation_additional_details as 
adddet on adddet.loan_repayment_schedule_id = repsch.id
+                left join m_loan_transaction as trans on (trans.is_reversed <> 
true and trans.transaction_type_enum = 19 and trans.loan_id = loan.id and 
trans.transaction_date = adddet.effective_date)
+                where loan.loan_status_id = 300  and loan.is_npa = false and 
loan.is_charged_off = false
+                and adddet.effective_date is not null  and 
trans.transaction_date is null
+                and adddet.effective_date < ?\s""";
         try {
-            return this.jdbcTemplate.queryForList(sqlBuilder.toString(), 
Long.class, new Object[] { currentdate });
+            return this.jdbcTemplate.queryForList(sql, Long.class, new 
Object[] { currentdate });
         } catch (final EmptyResultDataAccessException e) {
             return null;
         }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java
index fb1031e953..1a10287ed2 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java
@@ -1391,8 +1391,9 @@ public class SavingsAccountReadPlatformServiceImpl 
implements SavingsAccountRead
 
     @Override
     public List<Long> getAccountsIdsByStatusPaged(Integer status, int 
pageSize, Long maxSavingsIdInList) {
-        String sql = new StringBuilder().append(" SELECT sa.id FROM 
m_savings_account sa ")
-                .append(" where sa.id > ? and sa.status_enum  = ? ").append(" 
order by sa.id limit ?").toString();
+        final String sql = """
+                SELECT sa.id FROM m_savings_account sa
+                where sa.id > ? and sa.status_enum  = ?  order by sa.id limit 
?\s""";
 
         try {
             return this.jdbcTemplate.queryForList(sql, Long.class, new 
Object[] { maxSavingsIdInList, status, pageSize });
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfAccountTransferReadServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfAccountTransferReadServiceImpl.java
index ea0fc832cd..ca88bf6a13 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfAccountTransferReadServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfAccountTransferReadServiceImpl.java
@@ -35,19 +35,20 @@ public class SelfAccountTransferReadServiceImpl implements 
SelfAccountTransferRe
     @Override
     public Collection<SelfAccountTemplateData> 
retrieveSelfAccountTemplateData(AppUser user) {
         SelfAccountTemplateMapper mapper = new SelfAccountTemplateMapper();
-        StringBuilder sql = new StringBuilder().append("select s.id as 
accountId, ").append("s.account_no as accountNo, ")
-                .append("2 as accountType, ").append("c.id as clientId, 
").append("c.display_name as clientName, ")
-                .append("o.id as officeId, ").append("o.name as officeName 
").append("from m_appuser as u ")
-                .append("inner join m_selfservice_user_client_mapping as map 
on u.id = map.appuser_id ")
-                .append("inner join m_client as c on map.client_id = c.id 
").append("inner join m_office as o on c.office_id = o.id ")
-                .append("inner join m_savings_account as s on s.client_id = 
c.id ").append("where u.id = ? ")
-                .append("and s.status_enum = 300 ").append("union 
").append("select l.id as accountId, ")
-                .append("l.account_no as accountNo, ").append("1 as 
accountType, ").append("c.id as clientId, ")
-                .append("c.display_name as clientName, ").append("o.id as 
officeId, ").append("o.name as officeName ")
-                .append("from m_appuser as u ").append("inner join 
m_selfservice_user_client_mapping as map on u.id = map.appuser_id ")
-                .append("inner join m_client as c on map.client_id = c.id 
").append("inner join m_office as o on c.office_id = o.id ")
-                .append("inner join m_loan as l on l.client_id = c.id 
").append("where u.id = ? ").append("and l.loan_status_id = 300 ");
-        return this.jdbcTemplate.query(sql.toString(), mapper, new Object[] { 
user.getId(), user.getId() });
+        final String sql = """
+                 select s.id as accountId, s.account_no as accountNo,
+                2 as accountType, c.id as clientId, c.display_name as 
clientName,
+                o.id as officeId, o.name as officeName from m_appuser as u
+                inner join m_selfservice_user_client_mapping as map on u.id = 
map.appuser_id
+                inner join m_client as c on map.client_id = c.id inner join 
m_office as o on c.office_id = o.id
+                inner join m_savings_account as s on s.client_id = c.id where 
u.id = ?
+                and s.status_enum = 300 union select l.id as accountId,
+                l.account_no as accountNo, 1 as accountType, c.id as clientId,
+                c.display_name as clientName, o.id as officeId, o.name as 
officeName
+                from m_appuser as u inner join 
m_selfservice_user_client_mapping as map on u.id = map.appuser_id
+                inner join m_client as c on map.client_id = c.id inner join 
m_office as o on c.office_id = o.id
+                inner join m_loan as l on l.client_id = c.id where u.id = ? 
and l.loan_status_id = 300\s""";
+        return this.jdbcTemplate.query(sql, mapper, new Object[] { 
user.getId(), user.getId() });
     }
 
     private static final class SelfAccountTemplateMapper implements 
RowMapper<SelfAccountTemplateData> {
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
index 7124ff7894..2f7d851814 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
@@ -235,42 +235,41 @@ public class ShareAccountReadPlatformServiceImpl 
implements ShareAccountReadPlat
         private final Collection<ShareAccountChargeData> charges;
         private final Collection<ShareAccountTransactionData> purchasedShares;
 
-        private final String schema;
+        private static final String SHARE_ACCOUNT_SCHEMA = """
+                sa.id as id, sa.external_id as externalId, sa.status_enum as 
statusEnum,
+                sa.savings_account_id, msa.account_no as savingsAccNo,
+                c.id as clientId, c.display_name as clientName,
+                sa.account_no as accountNo, sa.total_approved_shares as 
approvedShares, sa.total_pending_shares as pendingShares,
+                sa.savings_account_id as savingsAccountNo, 
sa.minimum_active_period_frequency as minimumactivePeriod,
+                sa.minimum_active_period_frequency_enum as 
minimumactivePeriodEnum,
+                sa.lockin_period_frequency as lockinPeriod, 
sa.lockin_period_frequency_enum as lockinPeriodEnum,
+                sa.allow_dividends_inactive_clients as 
allowdividendsforinactiveclients,
+                sa.submitted_date as submittedDate, sbu.username as 
submittedByUsername,
+                sbu.firstname as submittedByFirstname, sbu.lastname as 
submittedByLastname,
+                sa.rejected_date as rejectedDate, rbu.username as 
rejectedByUsername,
+                rbu.firstname as rejectedByFirstname, rbu.lastname as 
rejectedByLastname,
+                sa.approved_date as approvedDate, abu.username as 
approvedByUsername,
+                abu.firstname as approvedByFirstname, abu.lastname as 
approvedByLastname,
+                sa.activated_date as activatedDate, avbu.username as 
activatedByUsername,
+                avbu.firstname as activatedByFirstname, avbu.lastname as 
activatedByLastname,
+                sa.closed_date as closedDate, cbu.username as closedByUsername,
+                cbu.firstname as closedByFirstname, cbu.lastname as 
closedByLastname,
+                sa.currency_code as currencyCode, sa.currency_digits as 
currencyDigits, sa.currency_multiplesof as inMultiplesOf,
+                curr.name as currencyName, curr.internationalized_name_code as 
currencyNameCode,
+                curr.display_symbol as currencyDisplaySymbol, sa.product_id as 
productId, p.name as productName, p.short_name as shortProductName
+                from m_share_account sa join m_share_product as p on p.id = 
sa.product_id
+                join m_currency curr on curr.code = sa.currency_code left join 
m_client c ON c.id = sa.client_id
+                left join m_appuser sbu on sbu.id = sa.submitted_userid
+                left join m_appuser rbu on rbu.id = sa.rejected_userid
+                left join m_appuser abu on abu.id = sa.approved_userid
+                left join m_appuser avbu on rbu.id = sa.activated_userid
+                left join m_appuser cbu on cbu.id = sa.closed_userid
+                left join m_savings_account msa on sa.savings_account_id = 
msa.id\s""";
 
         ShareAccountMapper(final Collection<ShareAccountChargeData> charges,
                 final Collection<ShareAccountTransactionData> purchasedShares) 
{
             this.charges = charges;
             this.purchasedShares = purchasedShares;
-            StringBuilder buff = new StringBuilder().append("sa.id as id, 
sa.external_id as externalId, sa.status_enum as statusEnum, ")
-                    .append("sa.savings_account_id, msa.account_no as 
savingsAccNo, ")
-                    .append("c.id as clientId, c.display_name as clientName, ")
-                    .append("sa.account_no as accountNo, 
sa.total_approved_shares as approvedShares, sa.total_pending_shares as 
pendingShares, ")
-                    .append("sa.savings_account_id as savingsAccountNo, 
sa.minimum_active_period_frequency as minimumactivePeriod, ")
-                    .append("sa.minimum_active_period_frequency_enum as 
minimumactivePeriodEnum, ")
-                    .append("sa.lockin_period_frequency as lockinPeriod, 
sa.lockin_period_frequency_enum as lockinPeriodEnum, ")
-                    .append("sa.allow_dividends_inactive_clients as 
allowdividendsforinactiveclients, ")
-                    .append("sa.submitted_date as submittedDate, sbu.username 
as submittedByUsername, ")
-                    .append("sbu.firstname as submittedByFirstname, 
sbu.lastname as submittedByLastname, ")
-                    .append("sa.rejected_date as rejectedDate, rbu.username as 
rejectedByUsername, ")
-                    .append("rbu.firstname as rejectedByFirstname, 
rbu.lastname as rejectedByLastname, ")
-                    .append("sa.approved_date as approvedDate, abu.username as 
approvedByUsername, ")
-                    .append("abu.firstname as approvedByFirstname, 
abu.lastname as approvedByLastname, ")
-                    .append("sa.activated_date as activatedDate, avbu.username 
as activatedByUsername, ")
-                    .append("avbu.firstname as activatedByFirstname, 
avbu.lastname as activatedByLastname, ")
-                    .append("sa.closed_date as closedDate, cbu.username as 
closedByUsername, ")
-                    .append("cbu.firstname as closedByFirstname, cbu.lastname 
as closedByLastname, ")
-                    .append("sa.currency_code as currencyCode, 
sa.currency_digits as currencyDigits, sa.currency_multiplesof as inMultiplesOf, 
")
-                    .append("curr.name as currencyName, 
curr.internationalized_name_code as currencyNameCode, ")
-                    .append("curr.display_symbol as currencyDisplaySymbol, 
sa.product_id as productId, p.name as productName, p.short_name as 
shortProductName ")
-                    .append("from m_share_account sa ").append("join 
m_share_product as p on p.id = sa.product_id ")
-                    .append("join m_currency curr on curr.code = 
sa.currency_code ").append("left join m_client c ON c.id = sa.client_id ")
-                    .append("left join m_appuser sbu on sbu.id = 
sa.submitted_userid ")
-                    .append("left join m_appuser rbu on rbu.id = 
sa.rejected_userid ")
-                    .append("left join m_appuser abu on abu.id = 
sa.approved_userid ")
-                    .append("left join m_appuser avbu on rbu.id = 
sa.activated_userid ")
-                    .append("left join m_appuser cbu on cbu.id = 
sa.closed_userid ")
-                    .append("left join m_savings_account msa on 
sa.savings_account_id = msa.id ");
-            this.schema = buff.toString();
         }
 
         @Override
@@ -356,7 +355,7 @@ public class ShareAccountReadPlatformServiceImpl implements 
ShareAccountReadPlat
         }
 
         public String schema() {
-            return this.schema;
+            return SHARE_ACCOUNT_SCHEMA;
         }
     }
 
@@ -366,17 +365,15 @@ public class ShareAccountReadPlatformServiceImpl 
implements ShareAccountReadPlat
         final PurchasedSharesDataRowMapper purchasedSharesDataRowMapper = new 
PurchasedSharesDataRowMapper();
 
         ShareAccountMapperForDividents() {
-            StringBuilder sb = new StringBuilder();
-
-            sb.append("sa.id as id, sa.status_enum as statusEnum, ");
-            sb.append("c.id as clientId, c.display_name as clientName, ");
-            sb.append("sa.account_no as accountNo, ");
-            sb.append("sa.currency_code as currencyCode, sa.currency_digits as 
currencyDigits, sa.currency_multiplesof as inMultiplesOf, ");
-            sb.append(purchasedSharesDataRowMapper.schema());
-            sb.append(" from m_share_account sa ");
-            sb.append(" join m_client c ON c.id = sa.client_id ");
-            sb.append(" join m_share_account_transactions saps ON 
saps.account_id = sa.id ");
-            schema = sb.toString();
+            schema = """
+                    sa.id as id, sa.status_enum as statusEnum,
+                    c.id as clientId, c.display_name as clientName,
+                    sa.account_no as accountNo,
+                    sa.currency_code as currencyCode, sa.currency_digits as 
currencyDigits, sa.currency_multiplesof as inMultiplesOf,\s"""
+                    + purchasedSharesDataRowMapper.schema() + """
+                            from m_share_account sa
+                            join m_client c ON c.id = sa.client_id
+                            join m_share_account_transactions saps ON 
saps.account_id = sa.id\s""";
         }
 
         @Override
@@ -427,16 +424,12 @@ public class ShareAccountReadPlatformServiceImpl 
implements ShareAccountReadPlat
 
     private static final class PurchasedSharesDataRowMapper implements 
RowMapper<ShareAccountTransactionData> {
 
-        private final String schema;
-
-        PurchasedSharesDataRowMapper() {
-            StringBuilder buff = new StringBuilder().append(
-                    "saps.id as purchasedId, saps.account_id as accountId, 
saps.transaction_date as transactionDate, saps.total_shares as purchasedShares, 
saps.unit_price as unitPrice, ")
-                    .append("saps.status_enum as purchaseStatus, 
saps.type_enum as purchaseType, saps.amount as amount, saps.charge_amount as 
chargeamount, ")
-                    .append("saps.amount_paid as amountPaid ");
+        private static final String PURCHASED_SHARES_SCHEMA = """
+                saps.id as purchasedId, saps.account_id as accountId, 
saps.transaction_date as transactionDate, saps.total_shares as purchasedShares, 
saps.unit_price as unitPrice,
+                saps.status_enum as purchaseStatus, saps.type_enum as 
purchaseType, saps.amount as amount, saps.charge_amount as chargeamount,
+                saps.amount_paid as amountPaid\s""";
 
-            schema = buff.toString();
-        }
+        PurchasedSharesDataRowMapper() {}
 
         @Override
         public ShareAccountTransactionData mapRow(ResultSet rs, 
@SuppressWarnings("unused") int rowNum) throws SQLException {
@@ -457,21 +450,18 @@ public class ShareAccountReadPlatformServiceImpl 
implements ShareAccountReadPlat
         }
 
         public String schema() {
-            return this.schema;
+            return PURCHASED_SHARES_SCHEMA;
         }
     }
 
     private static final class ShareAccountDividendRowMapper implements 
RowMapper<ShareAccountDividendData> {
 
-        private final String schema;
+        private static final String SHARE_ACCOUNT_DIVIDEND_SCHEMA = """
+                spdp.created_date, sadd.id, sadd.amount, 
sadd.savings_transaction_id, sadd.status
+                 from m_share_account_dividend_details sadd
+                JOIN m_share_product_dividend_pay_out spdp ON spdp.id = 
sadd.dividend_pay_out_id\s""";
 
-        ShareAccountDividendRowMapper() {
-            StringBuilder buff = new StringBuilder()
-                    .append("spdp.created_date, sadd.id, sadd.amount, 
sadd.savings_transaction_id, sadd.status ")
-                    .append(" from m_share_account_dividend_details sadd ")
-                    .append("JOIN m_share_product_dividend_pay_out spdp ON 
spdp.id = sadd.dividend_pay_out_id ");
-            schema = buff.toString();
-        }
+        ShareAccountDividendRowMapper() {}
 
         @SuppressWarnings("unused")
         @Override
@@ -487,7 +477,7 @@ public class ShareAccountReadPlatformServiceImpl implements 
ShareAccountReadPlat
         }
 
         public String schema() {
-            return this.schema;
+            return SHARE_ACCOUNT_DIVIDEND_SCHEMA;
         }
     }
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/spm/service/ScorecardReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/spm/service/ScorecardReadPlatformServiceImpl.java
index d458ff12c0..094bcac720 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/spm/service/ScorecardReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/spm/service/ScorecardReadPlatformServiceImpl.java
@@ -39,16 +39,16 @@ public class ScorecardReadPlatformServiceImpl implements 
ScorecardReadPlatformSe
 
     private static final class ScorecardMapper implements 
RowMapper<ScorecardData> {
 
+        private static final String SCORECARD_SCHEMA = """
+                sc.id as id, sc.survey_id as surveyId, s.a_name as surveyName,
+                sc.client_id as clientId,
+                sc.user_id as userId, user.username as username
+                from m_survey_scorecards sc
+                left join m_surveys s ON s.id = sc.survey_id
+                left join m_appuser user ON user.id = sc.user_id\s""";
+
         public String schema() {
-            StringBuilder sb = new StringBuilder(50);
-            sb.append(" sc.id as id, sc.survey_id as surveyId, s.a_name as 
surveyName, ");
-            sb.append(" sc.client_id as clientId,");
-            sb.append(" sc.user_id as userId, user.username as username ");
-            sb.append(" from m_survey_scorecards sc ");
-            sb.append(" left join m_surveys s ON s.id = sc.survey_id ");
-            sb.append(" left join m_appuser user ON user.id = sc.user_id ");
-
-            return sb.toString();
+            return SCORECARD_SCHEMA;
         }
 
         @Override
@@ -67,14 +67,14 @@ public class ScorecardReadPlatformServiceImpl implements 
ScorecardReadPlatformSe
 
     private static final class ScorecardValueMapper implements 
RowMapper<ScorecardValue> {
 
-        public String schema() {
-            StringBuilder sb = new StringBuilder(50);
-            sb.append(" sc.question_id as questionId, sc.response_id as 
responseId, ");
-            sb.append(" sc.created_on as createdOn, sc.a_value as value ");
-            sb.append(" from m_survey_scorecards sc  ");
-            sb.append(" where sc.survey_id = ? and sc.client_id = ?  ");
+        private static final String SCORECARD_VALUE_SCHEMA = """
+                sc.question_id as questionId, sc.response_id as responseId,
+                sc.created_on as createdOn, sc.a_value as value
+                from m_survey_scorecards sc
+                where sc.survey_id = ? and sc.client_id = ?\s""";
 
-            return sb.toString();
+        public String schema() {
+            return SCORECARD_VALUE_SCHEMA;
         }
 
         @Override
diff --git 
a/fineract-rates/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java
 
b/fineract-rates/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java
index 1c097cb188..ee1a66b044 100644
--- 
a/fineract-rates/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java
+++ 
b/fineract-rates/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java
@@ -97,13 +97,14 @@ public class FloatingRatesReadPlatformServiceImpl 
implements FloatingRatesReadPl
 
         private final boolean addRatePeriods;
 
-        private final StringBuilder sqlQuery = new 
StringBuilder().append("rate.id as id, ").append("rate.name as name, ")
-                .append("rate.is_base_lending_rate as isBaseLendingRate, 
").append("rate.is_active as isActive, ")
-                .append("crappu.username as createdBy, 
").append("rate.created_date as createdOn, ")
-                .append("rate.created_on_utc as createdOnUTC, 
").append("moappu.username as modifiedBy, ")
-                .append("rate.lastmodified_date as modifiedOn, 
").append("rate.last_modified_on_utc as modifiedOnUTC ")
-                .append("FROM m_floating_rates as rate ").append("LEFT JOIN 
m_appuser as crappu on rate.created_by = crappu.id ")
-                .append("LEFT JOIN m_appuser as moappu on 
rate.last_modified_by = moappu.id ");
+        private static final String FLOATING_RATE_SCHEMA = """
+                rate.id as id, rate.name as name,
+                rate.is_base_lending_rate as isBaseLendingRate, rate.is_active 
as isActive,
+                crappu.username as createdBy, rate.created_date as createdOn,
+                rate.created_on_utc as createdOnUTC, moappu.username as 
modifiedBy,
+                rate.lastmodified_date as modifiedOn, 
rate.last_modified_on_utc as modifiedOnUTC
+                FROM m_floating_rates as rate LEFT JOIN m_appuser as crappu on 
rate.created_by = crappu.id
+                LEFT JOIN m_appuser as moappu on rate.last_modified_by = 
moappu.id\s""";
 
         FloatingRateRowMapper(final boolean addRatePeriods) {
             this.addRatePeriods = addRatePeriods;
@@ -135,21 +136,22 @@ public class FloatingRatesReadPlatformServiceImpl 
implements FloatingRatesReadPl
         }
 
         public String schema() {
-            return sqlQuery.toString();
+            return FLOATING_RATE_SCHEMA;
         }
     }
 
     private static final class FloatingRatePeriodRowMapper implements 
RowMapper<FloatingRatePeriodData> {
 
-        private final StringBuilder sqlQuery = new 
StringBuilder().append("period.id as id, ").append("period.from_date as 
fromDate, ")
-                .append("period.interest_rate as interestRate, ")
-                .append("period.is_differential_to_base_lending_rate as 
isDifferentialToBaseLendingRate, ")
-                .append("period.is_active as isActive, 
").append("crappu.username as createdBy, ")
-                .append("period.created_date as createdOn, 
").append("period.created_on_utc as createdOnUTC, ")
-                .append("moappu.username as modifiedBy, 
").append("period.lastmodified_date as modifiedOn, ")
-                .append("period.last_modified_on_utc as modifiedOnUTC 
").append("FROM m_floating_rates_periods as period ")
-                .append("LEFT JOIN m_appuser as crappu on period.created_by = 
crappu.id ")
-                .append("LEFT JOIN m_appuser as moappu on 
period.last_modified_by = moappu.id ");
+        private static final String FLOATING_RATE_PERIOD_SCHEMA = """
+                period.id as id, period.from_date as fromDate,
+                period.interest_rate as interestRate,
+                period.is_differential_to_base_lending_rate as 
isDifferentialToBaseLendingRate,
+                period.is_active as isActive, crappu.username as createdBy,
+                period.created_date as createdOn, period.created_on_utc as 
createdOnUTC,
+                moappu.username as modifiedBy, period.lastmodified_date as 
modifiedOn,
+                period.last_modified_on_utc as modifiedOnUTC FROM 
m_floating_rates_periods as period
+                LEFT JOIN m_appuser as crappu on period.created_by = crappu.id
+                LEFT JOIN m_appuser as moappu on period.last_modified_by = 
moappu.id\s""";
 
         @Override
         public FloatingRatePeriodData mapRow(final ResultSet rs, 
@SuppressWarnings("unused") final int rowNum) throws SQLException {
@@ -171,14 +173,15 @@ public class FloatingRatesReadPlatformServiceImpl 
implements FloatingRatesReadPl
         }
 
         public String schema() {
-            return sqlQuery.toString();
+            return FLOATING_RATE_PERIOD_SCHEMA;
         }
     }
 
     private static final class FloatingRateLookupMapper implements 
RowMapper<FloatingRateData> {
 
-        private final StringBuilder sqlQuery = new 
StringBuilder().append("rate.id as id, ").append("rate.name as name, ")
-                .append("rate.is_base_lending_rate as isBaseLendingRate 
").append("FROM m_floating_rates as rate ");
+        private static final String FLOATING_RATE_LOOKUP_SCHEMA = """
+                rate.id as id, rate.name as name,
+                rate.is_base_lending_rate as isBaseLendingRate FROM 
m_floating_rates as rate\s""";
 
         @Override
         public FloatingRateData mapRow(final ResultSet rs, 
@SuppressWarnings("unused") final int rowNum) throws SQLException {
@@ -189,35 +192,46 @@ public class FloatingRatesReadPlatformServiceImpl 
implements FloatingRatesReadPl
         }
 
         public String schema() {
-            return sqlQuery.toString();
+            return FLOATING_RATE_LOOKUP_SCHEMA;
         }
     }
 
     private static final class FloatingInterestRatePeriodRowMapper implements 
RowMapper<InterestRatePeriodData> {
 
-        private final StringBuilder sqlQuery = new 
StringBuilder().append("select ")
-                .append("    linkedrateperiods.from_date as 
linkedrateperiods_from_date, ")
-                .append("    linkedrateperiods.interest_rate as 
linkedrateperiods_interest_rate, ")
-                .append("    
linkedrateperiods.is_differential_to_base_lending_rate as 
linkedrateperiods_is_differential_to_base_lending_rate, ")
-                .append("    baserate.from_date as baserate_from_date, 
").append("    baserate.interest_rate as baserate_interest_rate ")
-                .append(" from m_product_loan as lp ")
-                .append(" join m_product_loan_floating_rates as plfr on lp.id 
= plfr.loan_product_id ")
-                .append(" join  m_floating_rates as linkedrate on 
linkedrate.id = plfr.floating_rates_id ")
-                .append("left join m_floating_rates_periods as 
linkedrateperiods on (linkedrate.id = linkedrateperiods.floating_rates_id and 
linkedrateperiods.is_active = true) ")
-                .append("left join ( ").append("    select blr.name, 
").append("    blr.is_base_lending_rate, ")
-                .append("    blr.is_active, ").append("    
blrperiods.from_date, ").append("    blrperiods.interest_rate ")
-                .append("    from m_floating_rates as blr ")
-                .append("    left join m_floating_rates_periods as blrperiods 
on (blr.id = blrperiods.floating_rates_id and blrperiods.is_active = true) ")
-                .append("    where blr.is_base_lending_rate = true and 
blr.is_active = true ")
-                .append(") as baserate on 
(linkedrateperiods.is_differential_to_base_lending_rate = true and 
linkedrate.is_base_lending_rate = false) ")
-                .append("where (baserate.from_date is null ").append("    or 
baserate.from_date = (select MAX(b.from_date) ")
-                .append("        from (select blr.name, ").append("            
blr.is_base_lending_rate, ")
-                .append("            blr.is_active, ").append("            
blrperiods.from_date, ")
-                .append("            blrperiods.interest_rate ").append("      
      from m_floating_rates as blr ")
-                .append("            left join m_floating_rates_periods as 
blrperiods on (blr.id = blrperiods.floating_rates_id and blrperiods.is_active = 
true) ")
-                .append("            where blr.is_base_lending_rate = true and 
blr.is_active = true ").append("        ) as b ")
-                .append("        where b.from_date <= 
linkedrateperiods.from_date)) ").append("and lp.id = ? ")
-                .append("order by linkedratePeriods_from_date desc ");
+        private static final String FLOATING_INTEREST_RATE_PERIOD_SCHEMA = """
+                select
+                    linkedrateperiods.from_date as linkedrateperiods_from_date,
+                    linkedrateperiods.interest_rate as 
linkedrateperiods_interest_rate,
+                    linkedrateperiods.is_differential_to_base_lending_rate as 
linkedrateperiods_is_differential_to_base_lending_rate,
+                    baserate.from_date as baserate_from_date, 
baserate.interest_rate as baserate_interest_rate
+                 from m_product_loan as lp
+                 join m_product_loan_floating_rates as plfr on lp.id = 
plfr.loan_product_id
+                 join  m_floating_rates as linkedrate on linkedrate.id = 
plfr.floating_rates_id
+                left join m_floating_rates_periods as linkedrateperiods on 
(linkedrate.id = linkedrateperiods.floating_rates_id and 
linkedrateperiods.is_active = true)
+                left join (
+                    select blr.name,
+                    blr.is_base_lending_rate,
+                    blr.is_active,
+                    blrperiods.from_date,
+                    blrperiods.interest_rate
+                    from m_floating_rates as blr
+                    left join m_floating_rates_periods as blrperiods on 
(blr.id = blrperiods.floating_rates_id and blrperiods.is_active = true)
+                    where blr.is_base_lending_rate = true and blr.is_active = 
true
+                ) as baserate on 
(linkedrateperiods.is_differential_to_base_lending_rate = true and 
linkedrate.is_base_lending_rate = false)
+                where (baserate.from_date is null
+                    or baserate.from_date = (select MAX(b.from_date)
+                        from (select blr.name,
+                            blr.is_base_lending_rate,
+                            blr.is_active,
+                            blrperiods.from_date,
+                            blrperiods.interest_rate
+                            from m_floating_rates as blr
+                            left join m_floating_rates_periods as blrperiods 
on (blr.id = blrperiods.floating_rates_id and blrperiods.is_active = true)
+                            where blr.is_base_lending_rate = true and 
blr.is_active = true
+                        ) as b
+                        where b.from_date <= linkedrateperiods.from_date))
+                and lp.id = ?
+                order by linkedratePeriods_from_date desc\s""";
 
         @Override
         public InterestRatePeriodData mapRow(final ResultSet rs, 
@SuppressWarnings("unused") final int rowNum) throws SQLException {
@@ -232,7 +246,7 @@ public class FloatingRatesReadPlatformServiceImpl 
implements FloatingRatesReadPl
         }
 
         public String schema() {
-            return sqlQuery.toString();
+            return FLOATING_INTEREST_RATE_PERIOD_SCHEMA;
         }
     }
 

Reply via email to