X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-dao%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fdao%2Fimpl%2FDefaultPfDao.java;h=5e89ee591d12c768e3c2de6cd991fccc25d894fc;hb=bc16a49415e2983e69cb189f030453660d93367b;hp=d7817243613472f4090a8a7f18fcc5502f8d3e6c;hpb=dba4f913f6e130fa14db3b3465e922310d683cd5;p=policy%2Fmodels.git diff --git a/models-dao/src/main/java/org/onap/policy/models/dao/impl/DefaultPfDao.java b/models-dao/src/main/java/org/onap/policy/models/dao/impl/DefaultPfDao.java index d78172436..5e89ee591 100644 --- a/models-dao/src/main/java/org/onap/policy/models/dao/impl/DefaultPfDao.java +++ b/models-dao/src/main/java/org/onap/policy/models/dao/impl/DefaultPfDao.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019-2020 Nordix Foundation. - * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2019-2021 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. @@ -26,13 +26,11 @@ import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; - import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.TypedQuery; import javax.ws.rs.core.Response; - import org.onap.policy.models.base.PfConcept; import org.onap.policy.models.base.PfConceptKey; import org.onap.policy.models.base.PfModelException; @@ -93,6 +91,9 @@ public class DefaultPfDao implements PfDao { private static final String SELECT_ALL_FOR_PARENT = SELECT_FROM_TABLE + WHERE + PARENT_NAME_FILTER + AND + PARENT_VERSION_FILTER; + private static final String SELECT_ALL_VERSIONS_FOR_PARENT = + SELECT_FROM_TABLE + WHERE + PARENT_NAME_FILTER; + private static final String SELECT_ALL_VERSIONS = SELECT_FROM_TABLE + WHERE + NAME_FILTER; private static final String SELECT_BY_CONCEPT_KEY = @@ -120,7 +121,7 @@ public class DefaultPfDao implements PfDao { } catch (final Exception ex) { String errorMessage = "Creation of Policy Framework persistence unit \"" + daoParameters.getPersistenceUnit() + "\" failed"; - LOGGER.warn(errorMessage, ex); + LOGGER.warn(errorMessage); throw new PfModelException(Response.Status.INTERNAL_SERVER_ERROR, errorMessage, ex); } LOGGER.debug("Created Policy Framework persistence unit \"{}\"", daoParameters.getPersistenceUnit()); @@ -362,11 +363,7 @@ public class DefaultPfDao implements PfDao { try { if (filterMap != null) { - StringBuilder bld = new StringBuilder(filterQueryString); - for (String key : filterMap.keySet()) { - bld.append("c." + key + "= :" + key + AND); - } - filterQueryString = bld.toString(); + filterQueryString = buildFilter(filterMap, filterQueryString); } filterQueryString = addKeyFilterString(filterQueryString, name, startTime, endTime); if (getRecordNum > 0) { @@ -398,49 +395,37 @@ public class DefaultPfDao implements PfDao { query.setMaxResults(getRecordNum); } - LOGGER.error("filterQueryString is \"{}\"", filterQueryString); + LOGGER.debug("filterQueryString is \"{}\"", filterQueryString); return query.getResultList(); } finally { mg.close(); } } + private String buildFilter(final Map filterMap, String filterQueryString) { + StringBuilder bld = new StringBuilder(filterQueryString); + for (String key : filterMap.keySet()) { + bld.append("c." + key + "= :" + key + AND); + } + return bld.toString(); + } + @Override public T get(final Class someClass, final PfConceptKey key) { - if (someClass == null) { - return null; - } - final EntityManager mg = getEntityManager(); - try { - final T t = mg.find(someClass, key); - if (t != null) { - mg.refresh(t); - } - return checkAndReturn(someClass, t); - } finally { - mg.close(); - } + return genericGet(someClass, key); } @Override public T get(final Class someClass, final PfReferenceKey key) { - if (someClass == null) { - return null; - } - final EntityManager mg = getEntityManager(); - try { - final T t = mg.find(someClass, key); - if (t != null) { - mg.refresh(t); - } - return checkAndReturn(someClass, t); - } finally { - mg.close(); - } + return genericGet(someClass, key); } @Override public T get(final Class someClass, final PfTimestampKey key) { + return genericGet(someClass, key); + } + + private T genericGet(final Class someClass, final Object key) { if (someClass == null) { return null; } @@ -487,6 +472,23 @@ public class DefaultPfDao implements PfDao { } } + @Override + public List getAllVersionsByParent(final Class someClass, final String parentKeyName) { + if (someClass == null || parentKeyName == null) { + return Collections.emptyList(); + } + final EntityManager mg = getEntityManager(); + try { + // @formatter:off + return mg.createQuery(setQueryTable(SELECT_ALL_VERSIONS_FOR_PARENT, someClass), someClass) + .setParameter(PARENT_NAME, parentKeyName) + .getResultList(); + // @formatter:on + } finally { + mg.close(); + } + } + @Override public List getAllVersions(final Class someClass, final String conceptName) { if (someClass == null || conceptName == null) {