diff --git a/src/main/java/com/example/demo/domain/QuestionPhaseRelation.java b/src/main/java/com/example/demo/domain/QuestionPhaseRelation.java index e76be3f603bee279e6d144d8e207a9aaccb54984..db6e6ae10abe66cf54f34f8f6bbd6198a845d12b 100644 --- a/src/main/java/com/example/demo/domain/QuestionPhaseRelation.java +++ b/src/main/java/com/example/demo/domain/QuestionPhaseRelation.java @@ -26,7 +26,7 @@ public class QuestionPhaseRelation { private QuestionnairePhase questionnairePhase; @ManyToOne(fetch = FetchType.LAZY) - private TrainingPhase relatedPhase; + private TrainingPhase relatedTrainingPhase; @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) @JoinTable(name = "question_phase_relation_question", @@ -61,12 +61,12 @@ public class QuestionPhaseRelation { this.questionnairePhase = questionnairePhase; } - public TrainingPhase getRelatedPhase() { - return relatedPhase; + public TrainingPhase getRelatedTrainingPhase() { + return relatedTrainingPhase; } - public void setRelatedPhase(TrainingPhase relatedPhase) { - this.relatedPhase = relatedPhase; + public void setRelatedTrainingPhase(TrainingPhase relatedPhase) { + this.relatedTrainingPhase = relatedPhase; } public Set<Question> getQuestions() { diff --git a/src/main/java/com/example/demo/domain/TrainingPhase.java b/src/main/java/com/example/demo/domain/TrainingPhase.java index 49f789dff86838103413bfee5f6f74ebb518c046..fa488c0deccf73b0701813ec6178458e99490066 100644 --- a/src/main/java/com/example/demo/domain/TrainingPhase.java +++ b/src/main/java/com/example/demo/domain/TrainingPhase.java @@ -23,6 +23,10 @@ public class TrainingPhase extends AbstractPhase { @OneToMany(mappedBy = "trainingPhase", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) private List<DecisionMatrixRow> decisionMatrix; + @OrderBy + @OneToMany(mappedBy = "relatedTrainingPhase", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + private List<QuestionPhaseRelation> questionPhaseRelations = new ArrayList<>(); + public String getEstimatedDuration() { return estimatedDuration; } @@ -62,4 +66,12 @@ public class TrainingPhase extends AbstractPhase { public void setDecisionMatrix(List<DecisionMatrixRow> decisionMatrix) { this.decisionMatrix = decisionMatrix; } + + public List<QuestionPhaseRelation> getQuestionPhaseRelations() { + return questionPhaseRelations; + } + + public void setQuestionPhaseRelations(List<QuestionPhaseRelation> questionPhaseRelations) { + this.questionPhaseRelations = questionPhaseRelations; + } } diff --git a/src/main/java/com/example/demo/repository/QuestionPhaseRelationRepository.java b/src/main/java/com/example/demo/repository/QuestionPhaseRelationRepository.java index b4853fe27d3f750674afea5d75846db1f97c1f15..49057b935ff93989acab6579e00a30347787bee3 100644 --- a/src/main/java/com/example/demo/repository/QuestionPhaseRelationRepository.java +++ b/src/main/java/com/example/demo/repository/QuestionPhaseRelationRepository.java @@ -2,11 +2,6 @@ package com.example.demo.repository; import com.example.demo.domain.QuestionPhaseRelation; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; public interface QuestionPhaseRelationRepository extends JpaRepository<QuestionPhaseRelation, Long> { - - @Query("SELECT COALESCE(MAX(q.order), -1) FROM QuestionPhaseRelation q WHERE q.questionnairePhase.id = :phaseId") - Integer getCurrentMaxOrder(@Param("phaseId") Long phaseId); } diff --git a/src/main/java/com/example/demo/service/QuestionnairePhaseService.java b/src/main/java/com/example/demo/service/QuestionnairePhaseService.java index 20ba97f99d9b5050928060e739d41ea5538d5d22..d2a095fbd8517030cfa43e82be6d43a418d27cd6 100644 --- a/src/main/java/com/example/demo/service/QuestionnairePhaseService.java +++ b/src/main/java/com/example/demo/service/QuestionnairePhaseService.java @@ -127,7 +127,7 @@ public class QuestionnairePhaseService { questionPhaseRelation.setOrder(order); questionPhaseRelation.setSuccessRate(phaseRelation.getSuccessRate()); - questionPhaseRelation.setRelatedPhase(trainingPhase); + questionPhaseRelation.setRelatedTrainingPhase(trainingPhase); questionPhaseRelation.setQuestionnairePhase(questionnairePhase); questionnairePhaseRelations.add(questionPhaseRelation);