getOperationStatusByServiceId db result is list 75/43675/3
authorYulian Han <elaine.hanyulian@huawei.com>
Thu, 19 Apr 2018 03:11:35 +0000 (11:11 +0800)
committerYulian Han <elaine.hanyulian@huawei.com>
Thu, 19 Apr 2018 06:08:38 +0000 (06:08 +0000)
Change-Id: Idaa55084f5ecb0dd3636c232cebc14fa5f064302
Issue-ID: SO-578
Signed-off-by: Yulian Han <elaine.hanyulian@huawei.com>
mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java
mso-api-handlers/mso-requests-db/src/test/java/org/openecomp/mso/requestsdb/RequestsDatabaseTest.java

index f69378e..9964b93 100644 (file)
@@ -643,13 +643,17 @@ public class RequestsDatabase {
         msoLogger.debug("Execute query on infra active request table");
 
         OperationStatus operStatus = null;
+        List<Object> list = null;
         Session session = sessionFactoryRequestDB.getSessionFactory().openSession();
         try {
             session.beginTransaction();
-            String hql = "FROM OperationStatus WHERE SERVICE_ID = :service_id";
+            String hql = "FROM OperationStatus WHERE SERVICE_ID = :service_id order by OPERATE_AT desc";
             Query query = session.createQuery(hql);
             query.setParameter("service_id", serviceId);
-            operStatus = (OperationStatus)query.uniqueResult();
+            list = query.list();
+            if(list != null && list.size() >= 1) {
+               operStatus = (OperationStatus) list.get(0);
+            }
 
         } finally {
             if(session != null && session.isOpen()) {
index 005a28e..aacdd96 100644 (file)
@@ -33,6 +33,7 @@ import org.junit.runner.RunWith;
 import org.openecomp.mso.db.AbstractSessionFactoryManager;
 
 import java.util.Arrays;
+import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -237,8 +238,8 @@ public class RequestsDatabaseTest {
                                                   @Mocked Query query) throws Exception {
         new Expectations() {{
             sessionFactoryManager.getSessionFactory().openSession(); result = session;
-            session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id"); result = query;
-            query.uniqueResult(); result = new OperationStatus();
+            session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id order by OPERATE_AT desc"); result = query;
+            List<Object>list = query.list(); result = new OperationStatus();
         }};
         assertEquals(OperationStatus.class,
                 requestsDatabase.getOperationStatusByServiceId("123").getClass());