diff --git a/.github/workflows/build-postgresql.yml b/.github/workflows/build-postgresql.yml index d22eb56cd..e992031c9 100644 --- a/.github/workflows/build-postgresql.yml +++ b/.github/workflows/build-postgresql.yml @@ -59,7 +59,7 @@ jobs: sudo apt-get install ghostscript -y - name: Basic Auth Build & Test - run: ./gradlew --no-daemon -q --console=plain licenseMain licenseTest check build test --fail-fast doc -x :twofactor-tests:test -x :oauth2-test:test -PdbType=postgresql -PexcludeTests=org.apache.fineract.integrationtests.guarantor.GuarantorTest.testGuarantor_UNDO_DISBURSAL + run: ./gradlew --no-daemon -q --console=plain licenseMain licenseTest check build test --fail-fast doc -x :twofactor-tests:test -x :oauth2-test:test -PdbType=postgresql - name: 2FA Build & Test run: ./gradlew --no-daemon -q --console=plain :twofactor-tests:test --fail-fast -PdbType=postgresql diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartReadPlatformServiceImpl.java index e2479f4da..cb845949d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartReadPlatformServiceImpl.java @@ -104,7 +104,7 @@ public class InterestRateChartReadPlatformServiceImpl implements InterestRateCha sql.append("END"); return this.jdbcTemplate.query( - con -> con.prepareStatement(sql.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE), + con -> con.prepareStatement(sql.toString(), ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE), ps -> ps.setLong(1, productId), this.chartExtractor); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorReadPlatformServiceImpl.java index 8a5600233..938eb1012 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorReadPlatformServiceImpl.java @@ -48,8 +48,10 @@ import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service +@Transactional(readOnly = true) public class GuarantorReadPlatformServiceImpl implements GuarantorReadPlatformService { private final JdbcTemplate jdbcTemplate; @@ -76,7 +78,7 @@ public class GuarantorReadPlatformServiceImpl implements GuarantorReadPlatformSe public List retrieveGuarantorsForLoan(final Long loanId) { final GuarantorMapper rm = new GuarantorMapper(); String sql = "select " + rm.schema(); - sql += " where loan_id = ? group by g.id,gfd.id, gt.id, sa.id, oht.id, cv.id"; + sql += " where loan_id = ? group by g.id,gfd.id, gt.id, sa.id, oht.id, cv.id order by g.id"; String finalSql = sql; final List guarantorDatas = this.jdbcTemplate.query(con -> { PreparedStatement preparedStatement = con.prepareStatement(finalSql, ResultSet.TYPE_SCROLL_SENSITIVE, @@ -98,7 +100,7 @@ public class GuarantorReadPlatformServiceImpl implements GuarantorReadPlatformSe public GuarantorData retrieveGuarantor(final Long loanId, final Long guarantorId) { final GuarantorMapper rm = new GuarantorMapper(); String sql = "select " + rm.schema(); - sql += " where g.loan_id = ? and g.id = ? group by g.id, gfd.id, gt.id, sa.id, oht.id, cv.id"; + sql += " where g.loan_id = ? and g.id = ? group by g.id, gfd.id, gt.id, sa.id, oht.id, cv.id order by g.id"; String finalSql = sql; final GuarantorData guarantorData = this.jdbcTemplate.query(con -> { PreparedStatement preparedStatement = con.prepareStatement(finalSql, ResultSet.TYPE_SCROLL_SENSITIVE, 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 a82cb183a..8484a59fa 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 @@ -233,10 +233,11 @@ public class ShareAccountReadPlatformServiceImpl implements ShareAccountReadPlat sb.append(" and sa.status_enum = ? "); } sb.append(" and saps.status_enum = ?"); + sb.append(" order by sa.id"); params.add(PurchasedSharesStatusType.APPROVED.getValue()); Object[] whereClauseItems = params.toArray(); return this.jdbcTemplate.query(con -> { - PreparedStatement preparedStatement = con.prepareStatement(sb.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, + PreparedStatement preparedStatement = con.prepareStatement(sb.toString(), ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); for (int i = 0; i < whereClauseItems.length; i++) { preparedStatement.setObject(i + 1, whereClauseItems[i]);