Skip to content
Snippets Groups Projects
Commit d3d039cb authored by Dominik Pilár's avatar Dominik Pilár
Browse files

JPA repositories extended by QuerydslPredicateExecutor.

parent c65f814d
No related branches found
No related tags found
1 merge request!20Resolve "Extend JPA repositories by QuerydslPredicateExecutor and QuerydslBinderCustomizer"
Pipeline #73813 passed with stages
in 2 minutes and 42 seconds
Showing
with 26 additions and 9 deletions
...@@ -2,9 +2,11 @@ package cz.muni.ics.kypo.training.adaptive.repository; ...@@ -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.QuestionAnswer;
import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionAnswerId; 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.jpa.repository.JpaRepository;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface QuestionAnswerRepository extends JpaRepository<QuestionAnswer, QuestionAnswerId> { public interface QuestionAnswerRepository extends JpaRepository<QuestionAnswer, QuestionAnswerId>, QuerydslPredicateExecutor<QuestionAnswer> {
} }
...@@ -2,8 +2,9 @@ package cz.muni.ics.kypo.training.adaptive.repository; ...@@ -2,8 +2,9 @@ package cz.muni.ics.kypo.training.adaptive.repository;
import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionPhaseResult; import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionPhaseResult;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface QuestionPhaseResultRepository extends JpaRepository<QuestionPhaseResult, Long> { public interface QuestionPhaseResultRepository extends JpaRepository<QuestionPhaseResult, Long>, QuerydslPredicateExecutor<QuestionPhaseResult> {
} }
package cz.muni.ics.kypo.training.adaptive.repository.phases; 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.AbstractPhase;
import cz.muni.ics.kypo.training.adaptive.domain.phase.QuestionnairePhase;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -11,7 +13,7 @@ import java.util.List; ...@@ -11,7 +13,7 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
@Repository @Repository
public interface AbstractPhaseRepository extends JpaRepository<AbstractPhase, Long> { public interface AbstractPhaseRepository extends JpaRepository<AbstractPhase, Long>, QuerydslPredicateExecutor<AbstractPhase> {
List<AbstractPhase> findAllByTrainingDefinitionIdOrderByOrder(long trainingDefinitionId); List<AbstractPhase> findAllByTrainingDefinitionIdOrderByOrder(long trainingDefinitionId);
......
...@@ -2,8 +2,9 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases; ...@@ -2,8 +2,9 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases;
import cz.muni.ics.kypo.training.adaptive.domain.phase.InfoPhase; import cz.muni.ics.kypo.training.adaptive.domain.phase.InfoPhase;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface InfoPhaseRepository extends JpaRepository<InfoPhase, Long> { public interface InfoPhaseRepository extends JpaRepository<InfoPhase, Long>, QuerydslPredicateExecutor<InfoPhase> {
} }
package cz.muni.ics.kypo.training.adaptive.repository.phases; 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 cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionPhaseRelation;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -10,7 +12,7 @@ import java.util.List; ...@@ -10,7 +12,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
@Repository @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") @Query("SELECT r FROM QuestionPhaseRelation r INNER JOIN r.questions q WHERE q.id IN :questionIdList")
List<QuestionPhaseRelation> findAllByQuestionIdList(@Param("questionIdList") Set<Long> questionIdList); List<QuestionPhaseRelation> findAllByQuestionIdList(@Param("questionIdList") Set<Long> questionIdList);
......
...@@ -2,12 +2,13 @@ package cz.muni.ics.kypo.training.adaptive.repository.phases; ...@@ -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 cz.muni.ics.kypo.training.adaptive.domain.phase.questions.Question;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Optional; import java.util.Optional;
@Repository @Repository
public interface QuestionRepository extends JpaRepository<Question, Long> { public interface QuestionRepository extends JpaRepository<Question, Long>, QuerydslPredicateExecutor<Question> {
Optional<Question> findByIdAndQuestionnairePhaseId(Long questionId, Long questionnaireId); Optional<Question> findByIdAndQuestionnairePhaseId(Long questionId, Long questionnaireId);
} }
package cz.muni.ics.kypo.training.adaptive.repository.phases; 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.QuestionnairePhase;
import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionPhaseRelation;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface QuestionnairePhaseRepository extends JpaRepository<QuestionnairePhase, Long> { public interface QuestionnairePhaseRepository extends JpaRepository<QuestionnairePhase, Long>, QuerydslPredicateExecutor<QuestionnairePhase> {
} }
package cz.muni.ics.kypo.training.adaptive.repository.phases; 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.Task;
import cz.muni.ics.kypo.training.adaptive.domain.phase.TrainingPhase;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@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") @Query("SELECT COALESCE(MAX(g.order), -1) FROM Task g WHERE g.trainingPhase.id = :phaseId")
Integer getCurrentMaxOrder(@Param("phaseId") Long phaseId); Integer getCurrentMaxOrder(@Param("phaseId") Long phaseId);
......
package cz.muni.ics.kypo.training.adaptive.repository.phases; 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.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.JpaRepository;
import org.springframework.data.jpa.repository.Query; 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.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
@Repository @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") @Query("SELECT COUNT(p.id) FROM TrainingPhase p WHERE p.trainingDefinition.id = :trainingDefinitionId")
int getNumberOfExistingPhases(@Param("trainingDefinitionId") Long trainingDefinitionId); int getNumberOfExistingPhases(@Param("trainingDefinitionId") Long trainingDefinitionId);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment