diff options
author | Jim Hahn <jrh3@att.com> | 2019-04-15 11:10:58 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2019-04-15 11:10:58 -0400 |
commit | fd3c23fd777f49603d370b88d0fb55405d92ce0a (patch) | |
tree | 9e2bdbd8cb6a0f68e2ac2bd6e25e5109c303d5a6 | |
parent | aca88111b78129371aebd6d2c9250a8abb9cc2ac (diff) |
Use keys to speed DB queries
When a filter specifies a name (and possibly version), those can
be used to speed DB searches. Modified the code to use the keys
rather than always retrieving every record before applying the
filter.
Change-Id: I6b48d9e6880ab7e8132d5d8f770394720031b9b5
Issue-ID: POLICY-1542
Signed-off-by: Jim Hahn <jrh3@att.com>
2 files changed, 10 insertions, 5 deletions
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java index 0a0f5f7ef..efdf5f2c8 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -79,9 +80,8 @@ public class PdpProvider { */ public List<PdpGroup> getFilteredPdpGroups(@NonNull final PfDao dao, @NonNull final PdpGroupFilter filter) { - List<JpaPdpGroup> jpaPdpGroupList = dao.getAll(JpaPdpGroup.class); - - return filter.filter(asPdpGroupList(jpaPdpGroupList)); + return filter.filter( + asPdpGroupList(dao.getFiltered(JpaPdpGroup.class, filter.getName(), PfKey.NULL_KEY_VERSION))); } /** diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java index 46f920cf4..5f8729e08 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -200,7 +201,10 @@ public class AuthorativeToscaProvider { public ToscaServiceTemplate getFilteredPolicies(@NonNull final PfDao dao, @NonNull final ToscaPolicyFilter filter) throws PfModelException { - ToscaServiceTemplate serviceTemplate = new SimpleToscaProvider().getPolicies(dao, null, null).toAuthorative(); + String version = ToscaPolicyFilter.LATEST_VERSION.equals(filter.getVersion()) ? null : filter.getVersion(); + + ToscaServiceTemplate serviceTemplate = + new SimpleToscaProvider().getPolicies(dao, filter.getName(), version).toAuthorative(); List<ToscaPolicy> filteredPolicies = asConceptList(serviceTemplate.getToscaTopologyTemplate().getPolicies()); filteredPolicies = filter.filter(filteredPolicies); @@ -221,7 +225,8 @@ public class AuthorativeToscaProvider { public List<ToscaPolicy> getFilteredPolicyList(@NonNull final PfDao dao, @NonNull final ToscaPolicyFilter filter) throws PfModelException { - return filter.filter(getPolicyList(dao, null, null)); + String version = ToscaPolicyFilter.LATEST_VERSION.equals(filter.getVersion()) ? null : filter.getVersion(); + return filter.filter(getPolicyList(dao, filter.getName(), version)); } /** |