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

Merge branch...

Merge branch '24-extend-jpa-repositories-by-querydslpredicateexecutor-and-querydslbindercustomizer' into 'master'

Resolve "Extend JPA repositories by QuerydslPredicateExecutor and QuerydslBinderCustomizer"

Closes #24

See merge request muni-kypo/kypolab/kypo-adaptive-training!20
parents c65f814d 1ab4a9e0
No related branches found
No related tags found
1 merge request!20Resolve "Extend JPA repositories by QuerydslPredicateExecutor and QuerydslBinderCustomizer"
Pipeline #73816 passed with stages
in 2 minutes and 53 seconds
Showing
with 28 additions and 11 deletions
......@@ -17,10 +17,10 @@ import org.springframework.context.annotation.Import;
AdaptiveTrainingWebMvcConfigurer.class,
ResourceServerSecurityConfig.class
})
public class DemoApplication {
public class AdaptiveTrainingApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
SpringApplication.run(AdaptiveTrainingApplication.class, args);
}
}
......@@ -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> {
}
......@@ -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> {
}
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);
......
......@@ -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> {
}
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);
......
......@@ -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);
}
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> {
}
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);
......
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);
......
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