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