Omer Frenkel has uploaded a new change for review.

Change subject: Revert "core: Fix cascade delete with Job/Step"
......................................................................

Revert "core: Fix cascade delete with Job/Step"

This reverts commit 6da572889e134baae729b87b3a3a5de535b48c63.

Change-Id: Iecc85f2aed8f09131fbedb296d9366572e6d2f7e
Signed-off-by: Omer Frenkel <ofren...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddStepCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetJobsByCorrelationIdQuery.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepository.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepositoryImpl.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/job/JobRepositoryTest.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Job.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Step.java
7 files changed, 50 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/42229/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddStepCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddStepCommand.java
index adb6c8e..258580d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddStepCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddStepCommand.java
@@ -53,6 +53,7 @@
         if (parentStep == null) { // A step that is directly under a job
                 context.setJob(job);
                 context.setExecutionMethod(ExecutionMethod.AsJob);
+                JobRepositoryFactory.getJobRepository().loadJobSteps(job);
                 Step step = ExecutionHandler.addStep(context, 
getParameters().getStepType(), getParameters().getDescription(), true);
                 setActionReturnValue(step.getId());
                 setSucceeded(true);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetJobsByCorrelationIdQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetJobsByCorrelationIdQuery.java
index fa7491e..adc404f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetJobsByCorrelationIdQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetJobsByCorrelationIdQuery.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import org.ovirt.engine.core.bll.job.JobRepositoryFactory;
 import org.ovirt.engine.core.common.job.Job;
 import 
org.ovirt.engine.core.common.queries.GetJobsByCorrelationIdQueryParameters;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
@@ -18,6 +19,11 @@
     @Override
     protected void executeQueryCommand() {
         List<Job> jobs = 
DbFacade.getInstance().getJobDao().getJobsByCorrelationId(getParameters().getCorrelationId());
+
+        for (Job job : jobs) {
+            JobRepositoryFactory.getJobRepository().loadJobSteps(job);
+        }
+
         getQueryReturnValue().setReturnValue(jobs);
     }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepository.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepository.java
index 1c421a0..268b455 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepository.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepository.java
@@ -77,6 +77,14 @@
     Job getJobWithSteps(Guid jobId);
 
     /**
+     * Update the {@link Job} entity with its Steps.
+     *
+     * @param job
+     *            The job to update with its steps(can't be <code>null</code>).
+     */
+    void loadJobSteps(Job job);
+
+    /**
      * Update the {@link Step} entity with its Steps.
      *
      * @param step
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepositoryImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepositoryImpl.java
index 02ae112..860393a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepositoryImpl.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/JobRepositoryImpl.java
@@ -120,8 +120,17 @@
             Map<Guid, VdcObjectType> jobSubjectEntity =
                     jobSubjectEntityDao.getJobSubjectEntityByJobId(jobId);
             job.setJobSubjectEntities(jobSubjectEntity);
+            loadJobSteps(job);
         }
         return job;
+    }
+
+    @Override
+    public void loadJobSteps(final Job job) {
+        List<Step> steps = stepDao.getStepsByJobId(job.getId());
+        if (!steps.isEmpty()) {
+            job.setSteps(buildStepsTree(steps));
+        }
     }
 
     @Override
@@ -243,4 +252,5 @@
     public void setStepDao(StepDao stepDao) {
         this.stepDao = stepDao;
     }
+
 }
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/job/JobRepositoryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/job/JobRepositoryTest.java
index 30f9b29..7e39f8a 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/job/JobRepositoryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/job/JobRepositoryTest.java
@@ -52,6 +52,22 @@
     }
 
     @Test
+    public void getJobWithSteps() {
+        Job jobWithSteps = jobRepository.getJobWithSteps(job.getId());
+        assertNotNull(jobWithSteps);
+        assertNotNull(jobWithSteps.getSteps());
+        assertTrue(!jobWithSteps.getSteps().isEmpty());
+        assertEquals(JOB_SUBJECT_ENTITIES_MAP, 
jobWithSteps.getJobSubjectEntities());
+    }
+
+    @Test
+    public void loadJobSteps() {
+        jobRepository.loadJobSteps(job);
+        assertNotNull(job.getSteps());
+        assertTrue(!job.getSteps().isEmpty());
+    }
+
+    @Test
     public void getJobById() {
         assertNotNull(jobRepository.getJob(job.getId()));
         assertEquals(JOB_SUBJECT_ENTITIES_MAP, job.getJobSubjectEntities());
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Job.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Job.java
index ea742eb..b281073 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Job.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Job.java
@@ -21,11 +21,10 @@
 import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
 import javax.persistence.OneToMany;
-import javax.persistence.OrderColumn;
 import javax.persistence.Table;
 
-import org.hibernate.annotations.Fetch;
-import org.hibernate.annotations.FetchMode;
+import org.hibernate.annotations.LazyCollection;
+import org.hibernate.annotations.LazyCollectionOption;
 import org.hibernate.annotations.Type;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.VdcActionType;
@@ -146,7 +145,7 @@
     /**
      * A collection which holds the entities associated with the Job
      */
-    @ElementCollection(fetch = FetchType.EAGER)
+    @ElementCollection(fetch = FetchType.LAZY)
     @MapKey(name = "entity_id")
     @CollectionTable(schema = "jpa", name = "job_subject_entity",
             joinColumns = @JoinColumn(name = "job_id"))
@@ -156,9 +155,8 @@
      * A collection which stores the steps of the Job
      */
 
-    @OneToMany(cascade = { CascadeType.ALL }, mappedBy = "jobId", 
orphanRemoval = true, fetch = FetchType.EAGER)
-    @OrderColumn(name = "step_number")
-    @Fetch(FetchMode.SELECT)
+    @LazyCollection(LazyCollectionOption.FALSE)
+    @OneToMany(cascade = { CascadeType.ALL }, mappedBy = "jobId", 
orphanRemoval = true)
     private List<Step> steps;
 
     /**
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Step.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Step.java
index 15e5cb1..453f9b0 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Step.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/Step.java
@@ -12,7 +12,6 @@
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
 import javax.persistence.Id;
 import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
@@ -20,6 +19,8 @@
 import javax.persistence.OrderBy;
 import javax.persistence.Table;
 
+import org.hibernate.annotations.LazyCollection;
+import org.hibernate.annotations.LazyCollectionOption;
 import org.hibernate.annotations.Type;
 import org.ovirt.engine.core.common.businessentities.BusinessEntity;
 import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
@@ -146,7 +147,8 @@
     /**
      * The successors steps
      */
-    @OneToMany(cascade = { CascadeType.ALL }, mappedBy = "parentStepId", 
orphanRemoval = true, fetch = FetchType.LAZY)
+    @LazyCollection(LazyCollectionOption.FALSE)
+    @OneToMany(cascade = { CascadeType.ALL }, mappedBy = "parentStepId", 
orphanRemoval = true)
     @OrderBy("stepNumber")
     private List<Step> steps;
 


-- 
To view, visit https://gerrit.ovirt.org/42229
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iecc85f2aed8f09131fbedb296d9366572e6d2f7e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Omer Frenkel <ofren...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to