From d3d039cb7117933b37a63f5fdb138e072b9be4c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pil=C3=A1r?= <xpilar3@fi.muni.cz> Date: Wed, 24 Feb 2021 14:33:03 +0100 Subject: [PATCH] JPA repositories extended by QuerydslPredicateExecutor. --- .../adaptive/repository/QuestionAnswerRepository.java | 4 +++- .../adaptive/repository/QuestionPhaseResultRepository.java | 3 ++- .../adaptive/repository/phases/AbstractPhaseRepository.java | 4 +++- .../adaptive/repository/phases/InfoPhaseRepository.java | 3 ++- .../repository/phases/QuestionPhaseRelationRepository.java | 4 +++- .../adaptive/repository/phases/QuestionRepository.java | 3 ++- .../repository/phases/QuestionnairePhaseRepository.java | 4 +++- .../training/adaptive/repository/phases/TaskRepository.java | 4 +++- .../adaptive/repository/phases/TrainingPhaseRepository.java | 6 +++++- 9 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionAnswerRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionAnswerRepository.java index 8fc46323..620e628e 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionAnswerRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionAnswerRepository.java @@ -2,9 +2,11 @@ package cz.muni.ics.kypo.training.adaptive.repository; import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionAnswer; import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionAnswerId; +import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionPhaseResult; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.stereotype.Repository; @Repository -public interface QuestionAnswerRepository extends JpaRepository<QuestionAnswer, QuestionAnswerId> { +public interface QuestionAnswerRepository extends JpaRepository<QuestionAnswer, QuestionAnswerId>, QuerydslPredicateExecutor<QuestionAnswer> { } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionPhaseResultRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionPhaseResultRepository.java index 6c417b06..d8d5851e 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionPhaseResultRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionPhaseResultRepository.java @@ -2,8 +2,9 @@ package cz.muni.ics.kypo.training.adaptive.repository; import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionPhaseResult; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.stereotype.Repository; @Repository -public interface QuestionPhaseResultRepository extends JpaRepository<QuestionPhaseResult, Long> { +public interface QuestionPhaseResultRepository extends JpaRepository<QuestionPhaseResult, Long>, QuerydslPredicateExecutor<QuestionPhaseResult> { } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/AbstractPhaseRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/AbstractPhaseRepository.java index 9aca6525..6572df3d 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/AbstractPhaseRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/AbstractPhaseRepository.java @@ -1,9 +1,11 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases; import cz.muni.ics.kypo.training.adaptive.domain.phase.AbstractPhase; +import cz.muni.ics.kypo.training.adaptive.domain.phase.QuestionnairePhase; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @@ -11,7 +13,7 @@ import java.util.List; import java.util.Optional; @Repository -public interface AbstractPhaseRepository extends JpaRepository<AbstractPhase, Long> { +public interface AbstractPhaseRepository extends JpaRepository<AbstractPhase, Long>, QuerydslPredicateExecutor<AbstractPhase> { List<AbstractPhase> findAllByTrainingDefinitionIdOrderByOrder(long trainingDefinitionId); diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/InfoPhaseRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/InfoPhaseRepository.java index fa0b5264..5d01f067 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/InfoPhaseRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/InfoPhaseRepository.java @@ -2,8 +2,9 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases; import cz.muni.ics.kypo.training.adaptive.domain.phase.InfoPhase; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.stereotype.Repository; @Repository -public interface InfoPhaseRepository extends JpaRepository<InfoPhase, Long> { +public interface InfoPhaseRepository extends JpaRepository<InfoPhase, Long>, QuerydslPredicateExecutor<InfoPhase> { } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionPhaseRelationRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionPhaseRelationRepository.java index 25dd8946..3c45fa42 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionPhaseRelationRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionPhaseRelationRepository.java @@ -1,8 +1,10 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases; +import cz.muni.ics.kypo.training.adaptive.domain.phase.Task; import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionPhaseRelation; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @@ -10,7 +12,7 @@ import java.util.List; import java.util.Set; @Repository -public interface QuestionPhaseRelationRepository extends JpaRepository<QuestionPhaseRelation, Long> { +public interface QuestionPhaseRelationRepository extends JpaRepository<QuestionPhaseRelation, Long>, QuerydslPredicateExecutor<QuestionPhaseRelation> { @Query("SELECT r FROM QuestionPhaseRelation r INNER JOIN r.questions q WHERE q.id IN :questionIdList") List<QuestionPhaseRelation> findAllByQuestionIdList(@Param("questionIdList") Set<Long> questionIdList); diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionRepository.java index c6aad8d6..fee95ace 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionRepository.java @@ -2,12 +2,13 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases; import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.Question; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.stereotype.Repository; import java.util.Optional; @Repository -public interface QuestionRepository extends JpaRepository<Question, Long> { +public interface QuestionRepository extends JpaRepository<Question, Long>, QuerydslPredicateExecutor<Question> { Optional<Question> findByIdAndQuestionnairePhaseId(Long questionId, Long questionnaireId); } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionnairePhaseRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionnairePhaseRepository.java index df0d6d90..53c9c0bc 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionnairePhaseRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/QuestionnairePhaseRepository.java @@ -1,9 +1,11 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases; import cz.muni.ics.kypo.training.adaptive.domain.phase.QuestionnairePhase; +import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionPhaseRelation; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.stereotype.Repository; @Repository -public interface QuestionnairePhaseRepository extends JpaRepository<QuestionnairePhase, Long> { +public interface QuestionnairePhaseRepository extends JpaRepository<QuestionnairePhase, Long>, QuerydslPredicateExecutor<QuestionnairePhase> { } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/TaskRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/TaskRepository.java index 426f0fa1..5356d736 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/TaskRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/TaskRepository.java @@ -1,14 +1,16 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases; import cz.muni.ics.kypo.training.adaptive.domain.phase.Task; +import cz.muni.ics.kypo.training.adaptive.domain.phase.TrainingPhase; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @Repository -public interface TaskRepository extends JpaRepository<Task, Long> { +public interface TaskRepository extends JpaRepository<Task, Long>, QuerydslPredicateExecutor<Task> { @Query("SELECT COALESCE(MAX(g.order), -1) FROM Task g WHERE g.trainingPhase.id = :phaseId") Integer getCurrentMaxOrder(@Param("phaseId") Long phaseId); diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/TrainingPhaseRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/TrainingPhaseRepository.java index e0b25155..a9b794b5 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/TrainingPhaseRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/phases/TrainingPhaseRepository.java @@ -1,15 +1,19 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases; import cz.muni.ics.kypo.training.adaptive.domain.phase.TrainingPhase; +import cz.muni.ics.kypo.training.adaptive.domain.training.QTrainingDefinition; +import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingDefinition; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.querydsl.QuerydslPredicateExecutor; +import org.springframework.data.querydsl.binding.QuerydslBinderCustomizer; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; @Repository -public interface TrainingPhaseRepository extends JpaRepository<TrainingPhase, Long> { +public interface TrainingPhaseRepository extends JpaRepository<TrainingPhase, Long> , QuerydslPredicateExecutor<TrainingPhase> { @Query("SELECT COUNT(p.id) FROM TrainingPhase p WHERE p.trainingDefinition.id = :trainingDefinitionId") int getNumberOfExistingPhases(@Param("trainingDefinitionId") Long trainingDefinitionId); -- GitLab