Merge pull request 'Fix application search issue' (#342) from pahansith/device-mgt-core:search-filter into master

Reviewed-on: community/device-mgt-core#342
Improvement-#9241
Inosh Perara 9 months ago
commit 0c9f59d7ac

@ -21,6 +21,7 @@ package io.entgra.device.mgt.core.device.mgt.core.common;
public class Constants { public class Constants {
public static final String SCHEME_SEPARATOR = "://"; public static final String SCHEME_SEPARATOR = "://";
public static final String COLON = ":"; public static final String COLON = ":";
public static final String QUERY_WILDCARD = "%";
public static final String URI_QUERY_SEPARATOR = "?"; public static final String URI_QUERY_SEPARATOR = "?";
public static final String URI_SEPARATOR = "/"; public static final String URI_SEPARATOR = "/";
public static final String BASIC_AUTH_HEADER_PREFIX = "Basic "; public static final String BASIC_AUTH_HEADER_PREFIX = "Basic ";

@ -17,6 +17,7 @@
*/ */
package io.entgra.device.mgt.core.device.mgt.core.dao.impl; package io.entgra.device.mgt.core.device.mgt.core.dao.impl;
import io.entgra.device.mgt.core.device.mgt.core.common.Constants;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import io.entgra.device.mgt.core.device.mgt.common.PaginationRequest; import io.entgra.device.mgt.core.device.mgt.common.PaginationRequest;
@ -298,9 +299,13 @@ public class ApplicationDAOImpl implements ApplicationDAO {
String filter = request.getFilter(); String filter = request.getFilter();
if (filter != null) { if (filter != null) {
sql = sql + "AND NAME LIKE ? "; sql = sql + "AND NAME LIKE ? ";
filter = Constants.QUERY_WILDCARD.concat(filter).concat(Constants.QUERY_WILDCARD);
} }
boolean isLimitPresent = false;
if (request != null && request.getRowCount() != -1) { if (request != null && request.getRowCount() != -1) {
sql = sql + "LIMIT ? OFFSET ?"; sql = sql + "LIMIT ? OFFSET ?";
isLimitPresent = true;
} }
Connection conn = this.getConnection(); Connection conn = this.getConnection();
try (PreparedStatement stmt = conn.prepareStatement(sql)) { try (PreparedStatement stmt = conn.prepareStatement(sql)) {
@ -312,7 +317,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
if (filter != null){ if (filter != null){
stmt.setString(paramIdx++, filter); stmt.setString(paramIdx++, filter);
} }
if (request != null && request.getRowCount() != -1) { if (isLimitPresent) {
stmt.setInt(paramIdx++, request.getRowCount()); stmt.setInt(paramIdx++, request.getRowCount());
stmt.setInt(paramIdx, request.getStartIndex()); stmt.setInt(paramIdx, request.getStartIndex());
} }

@ -463,6 +463,8 @@ CREATE TABLE IF NOT EXISTS DM_APPLICATION (
)ENGINE = InnoDB; )ENGINE = InnoDB;
CREATE INDEX IDX_DM_APPLICATION ON DM_APPLICATION(DEVICE_ID, ENROLMENT_ID, TENANT_ID); CREATE INDEX IDX_DM_APPLICATION ON DM_APPLICATION(DEVICE_ID, ENROLMENT_ID, TENANT_ID);
CREATE INDEX DM_APPLICATION_NAME ON DM_APPLICATION(NAME);
CREATE INDEX DM_APPLICATION_NAME_PLATFORM_TID ON DM_APPLICATION(NAME, PLATFORM, TENANT_ID);
-- END OF POLICY RELATED TABLES -- -- END OF POLICY RELATED TABLES --

Loading…
Cancel
Save