mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
API: Fix listSSHKeyPairs API when listing all resources (listall=true & projectid=-1) (#5958)
* API: Fix listSSHKeyPairs API when listing all resources (listall=true & projectid=-1) * fix issue with indexing
This commit is contained in:
parent
143b72d67e
commit
85ced4447b
@ -56,6 +56,7 @@ import javax.persistence.Enumerated;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.TableGenerator;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.utils.DateUtil;
|
||||
@ -878,7 +879,7 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
|
||||
for (final Field field : clazz.getDeclaredFields()) {
|
||||
sql.append(_table).append(".").append(DbUtil.getColumnName(field, overrides)).append(" = ? AND ");
|
||||
}
|
||||
sql.delete(sql.length() - 4, sql.length());
|
||||
removeAndClause(sql);
|
||||
}
|
||||
|
||||
return sql.toString();
|
||||
@ -1262,10 +1263,11 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
|
||||
|
||||
@DB()
|
||||
protected void addJoins(StringBuilder str, Collection<JoinBuilder<SearchCriteria<?>>> joins) {
|
||||
boolean hasWhereClause = true;
|
||||
int fromIndex = str.lastIndexOf("WHERE");
|
||||
if (fromIndex == -1) {
|
||||
fromIndex = str.length();
|
||||
str.append(" WHERE ");
|
||||
hasWhereClause = false;
|
||||
} else {
|
||||
str.append(" AND ");
|
||||
}
|
||||
@ -1287,13 +1289,19 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
|
||||
.append(" ");
|
||||
str.insert(fromIndex, onClause);
|
||||
String whereClause = join.getT().getWhereClause();
|
||||
if ((whereClause != null) && !"".equals(whereClause)) {
|
||||
if (StringUtils.isNotEmpty(whereClause)) {
|
||||
if (!hasWhereClause) {
|
||||
str.append(" WHERE ");
|
||||
hasWhereClause = true;
|
||||
}
|
||||
str.append(" (").append(whereClause).append(") AND");
|
||||
}
|
||||
fromIndex += onClause.length();
|
||||
}
|
||||
|
||||
str.delete(str.length() - 4, str.length());
|
||||
if (hasWhereClause) {
|
||||
removeAndClause(str);
|
||||
}
|
||||
|
||||
for (JoinBuilder<SearchCriteria<?>> join : joins) {
|
||||
if (join.getT().getJoins() != null) {
|
||||
@ -1302,6 +1310,10 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
|
||||
}
|
||||
}
|
||||
|
||||
private void removeAndClause(StringBuilder sql) {
|
||||
sql.delete(sql.length() - 4, sql.length());
|
||||
}
|
||||
|
||||
@Override
|
||||
@DB()
|
||||
public List<T> search(final SearchCriteria<T> sc, final Filter filter) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user