|
16 | 16 | // under the License. |
17 | 17 | package com.cloud.vm.dao; |
18 | 18 |
|
| 19 | +import java.util.ArrayList; |
19 | 20 | import java.util.List; |
20 | 21 |
|
21 | 22 | import javax.ejb.Local; |
|
37 | 38 | import com.cloud.utils.db.JoinBuilder.JoinType; |
38 | 39 | import com.cloud.utils.db.SearchBuilder; |
39 | 40 | import com.cloud.utils.db.SearchCriteria; |
| 41 | +import com.cloud.utils.db.SearchCriteria.Func; |
40 | 42 | import com.cloud.utils.db.SearchCriteria.Op; |
41 | 43 | import com.cloud.utils.db.Transaction; |
42 | 44 | import com.cloud.utils.db.UpdateBuilder; |
@@ -97,6 +99,7 @@ protected DomainRouterDaoImpl() { |
97 | 99 | HostUpSearch.done(); |
98 | 100 |
|
99 | 101 | StateNetworkTypeSearch = createSearchBuilder(); |
| 102 | + StateNetworkTypeSearch.select(null, Func.DISTINCT, StateNetworkTypeSearch.entity().getId()); |
100 | 103 | StateNetworkTypeSearch.and("state", StateNetworkTypeSearch.entity().getState(), Op.EQ); |
101 | 104 | SearchBuilder<RouterNetworkVO> joinRouterNetwork4 = _routerNetworkDao.createSearchBuilder(); |
102 | 105 | joinRouterNetwork4.and("networkId", joinRouterNetwork4.entity().getNetworkId(), Op.EQ); |
@@ -223,7 +226,12 @@ public List<DomainRouterVO> listByStateAndNetworkType(State state, Network.Guest |
223 | 226 | sc.setParameters("state", state); |
224 | 227 | sc.setJoinParameters("networkRouter", "type", type); |
225 | 228 | sc.setJoinParameters("host", "mgmtServerId", mgmtSrvrId); |
226 | | - return listBy(sc); |
| 229 | + List<DomainRouterVO> routerIds = listBy(sc); |
| 230 | + List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>(); |
| 231 | + for (DomainRouterVO router : routerIds) { |
| 232 | + routers.add(findById(router.getId())); |
| 233 | + } |
| 234 | + return routers; |
227 | 235 | } |
228 | 236 |
|
229 | 237 | @Override |
|
0 commit comments