FINERACT-2076: SQL query optimization
This commit is contained in:
committed by
Aleksandar Vidakovic
parent
039bca440b
commit
a022a51189
+2
-1
@@ -147,7 +147,8 @@ public class ProvisioningEntriesApiResource {
|
||||
@QueryParam("productId") final Long productId, @QueryParam("categoryId") final Long categoryId,
|
||||
@Context final UriInfo uriInfo) {
|
||||
this.platformSecurityContext.authenticatedUser();
|
||||
SearchParameters params = SearchParameters.forProvisioningEntries(entryId, officeId, productId, categoryId, offset, limit);
|
||||
SearchParameters params = SearchParameters.builder().limit(limit).offset(offset).provisioningEntryId(entryId).officeId(officeId)
|
||||
.productId(productId).categoryId(categoryId).build();
|
||||
Page<LoanProductProvisioningEntryData> entries = this.provisioningEntriesReadPlatformService.retrieveProvisioningEntries(params);
|
||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
return this.entriesApiJsonSerializer.serialize(settings, entries, PROVISIONING_ENTRY_PARAMETERS);
|
||||
|
||||
+6
-6
@@ -319,33 +319,33 @@ public class ProvisioningEntriesReadPlatformServiceImpl implements ProvisioningE
|
||||
String whereClose = " where ";
|
||||
List<Object> items = new ArrayList<>();
|
||||
|
||||
if (searchParams.isProvisioningEntryIdPassed()) {
|
||||
if (searchParams.hasProvisioningEntryId()) {
|
||||
sqlBuilder.append(whereClose + " entry.history_id = ?");
|
||||
items.add(searchParams.getProvisioningEntryId());
|
||||
whereClose = " and ";
|
||||
}
|
||||
|
||||
if (searchParams.isOfficeIdPassed()) {
|
||||
if (searchParams.hasOfficeId()) {
|
||||
sqlBuilder.append(whereClose + " entry.office_id = ?");
|
||||
items.add(searchParams.getOfficeId());
|
||||
whereClose = " and ";
|
||||
}
|
||||
|
||||
if (searchParams.isProductIdPassed()) {
|
||||
if (searchParams.hasProductId()) {
|
||||
sqlBuilder.append(whereClose + " entry.product_id = ?");
|
||||
items.add(searchParams.getProductId());
|
||||
whereClose = " and ";
|
||||
}
|
||||
|
||||
if (searchParams.isCategoryIdPassed()) {
|
||||
if (searchParams.hasCategoryId()) {
|
||||
sqlBuilder.append(whereClose + " entry.category_id = ?");
|
||||
items.add(searchParams.getCategoryId());
|
||||
}
|
||||
sqlBuilder.append(" order by entry.id");
|
||||
|
||||
if (searchParams.isLimited()) {
|
||||
if (searchParams.hasLimit()) {
|
||||
sqlBuilder.append(" limit ").append(searchParams.getLimit());
|
||||
if (searchParams.isOffset()) {
|
||||
if (searchParams.hasOffset()) {
|
||||
sqlBuilder.append(" offset ").append(searchParams.getOffset());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user