Merge remote-tracking branch 'apache/4.19' into main

This commit is contained in:
Wei Zhou 2024-10-15 09:11:59 +02:00
commit bcc81799ea
No known key found for this signature in database
GPG Key ID: 1503DFE7C8226103
2 changed files with 53 additions and 14 deletions

View File

@ -1399,17 +1399,33 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
if (join.getFirstAttributes()[i].getValue() != null) { if (join.getFirstAttributes()[i].getValue() != null) {
onClause.append("?"); onClause.append("?");
joinAttrList.add(join.getFirstAttributes()[i]); joinAttrList.add(join.getFirstAttributes()[i]);
} else {
if ((join.getFirstAttributes()[i].table == null && join.getFirstAttributes()[i].value == null) ||
(join.getSecondAttribute()[i].table == null && join.getSecondAttribute()[i].value == null)) {
onClause.append(joinedTableNames.getOrDefault(join.getSecondAttribute()[i].table, join.getFirstAttributes()[i].table))
.append(".");
if (join.getFirstAttributes()[i].table == null && join.getFirstAttributes()[i].value == null) {
onClause.append(join.getSecondAttribute()[i].columnName);
} else {
onClause.append(join.getFirstAttributes()[i].columnName);
}
} else { } else {
onClause.append(joinedTableNames.getOrDefault(join.getFirstAttributes()[i].table, join.getFirstAttributes()[i].table)) onClause.append(joinedTableNames.getOrDefault(join.getFirstAttributes()[i].table, join.getFirstAttributes()[i].table))
.append(".") .append(".")
.append(join.getFirstAttributes()[i].columnName); .append(join.getFirstAttributes()[i].columnName);
} }
}
if ((join.getFirstAttributes()[i].table == null && join.getFirstAttributes()[i].value == null) ||
(join.getSecondAttribute()[i].table == null && join.getSecondAttribute()[i].value == null)) {
onClause.append(" IS NULL");
} else {
onClause.append("="); onClause.append("=");
if (join.getSecondAttribute()[i].getValue() != null) { if (join.getSecondAttribute()[i].getValue() != null) {
onClause.append("?"); onClause.append("?");
joinAttrList.add(join.getSecondAttribute()[i]); joinAttrList.add(join.getSecondAttribute()[i]);
} else { } else {
if(!joinTableAlias.equals(joinTableName)) { if (!joinTableAlias.equals(joinTableName)) {
onClause.append(joinTableAlias); onClause.append(joinTableAlias);
} else { } else {
onClause.append(joinTableName); onClause.append(joinTableName);
@ -1418,6 +1434,7 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
.append(join.getSecondAttribute()[i].columnName); .append(join.getSecondAttribute()[i].columnName);
} }
} }
}
onClause.append(" "); onClause.append(" ");
str.insert(fromIndex, onClause); str.insert(fromIndex, onClause);
String whereClause = join.getT().getWhereClause(joinTableAlias); String whereClause = join.getT().getWhereClause(joinTableAlias);

View File

@ -551,6 +551,9 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
@Inject @Inject
private NetworkDao networkDao; private NetworkDao networkDao;
@Inject
private IPAddressDao ipAddressDao;
@Inject @Inject
private NicDao nicDao; private NicDao nicDao;
@ -1461,6 +1464,22 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
if (isRootAdmin) { if (isRootAdmin) {
userVmSearchBuilder.or("keywordInstanceName", userVmSearchBuilder.entity().getInstanceName(), Op.LIKE ); userVmSearchBuilder.or("keywordInstanceName", userVmSearchBuilder.entity().getInstanceName(), Op.LIKE );
} }
SearchBuilder<IPAddressVO> ipAddressSearch = ipAddressDao.createSearchBuilder();
userVmSearchBuilder.join("ipAddressSearch", ipAddressSearch,
ipAddressSearch.entity().getAssociatedWithVmId(), userVmSearchBuilder.entity().getId(), JoinBuilder.JoinType.LEFT);
SearchBuilder<NicVO> nicSearch = nicDao.createSearchBuilder();
userVmSearchBuilder.join("nicSearch", nicSearch, JoinBuilder.JoinType.LEFT,
JoinBuilder.JoinCondition.AND,
nicSearch.entity().getInstanceId(), userVmSearchBuilder.entity().getId(),
nicSearch.entity().getRemoved(), userVmSearchBuilder.entity().setLong(null));
userVmSearchBuilder.or("ipAddressSearch", "keywordPublicIpAddress", ipAddressSearch.entity().getAddress(), Op.LIKE);
userVmSearchBuilder.or("nicSearch", "keywordIpAddress", nicSearch.entity().getIPv4Address(), Op.LIKE);
userVmSearchBuilder.or("nicSearch", "keywordIp6Address", nicSearch.entity().getIPv6Address(), Op.LIKE);
userVmSearchBuilder.cp(); userVmSearchBuilder.cp();
} }
@ -1554,6 +1573,9 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
userVmSearchCriteria.setParameters("keywordDisplayName", keywordMatch); userVmSearchCriteria.setParameters("keywordDisplayName", keywordMatch);
userVmSearchCriteria.setParameters("keywordName", keywordMatch); userVmSearchCriteria.setParameters("keywordName", keywordMatch);
userVmSearchCriteria.setParameters("keywordState", keyword); userVmSearchCriteria.setParameters("keywordState", keyword);
userVmSearchCriteria.setParameters("keywordIpAddress", keywordMatch);
userVmSearchCriteria.setParameters("keywordPublicIpAddress", keywordMatch);
userVmSearchCriteria.setParameters("keywordIp6Address", keywordMatch);
if (isRootAdmin) { if (isRootAdmin) {
userVmSearchCriteria.setParameters("keywordInstanceName", keywordMatch); userVmSearchCriteria.setParameters("keywordInstanceName", keywordMatch);
} }