From 68e3a44614bbda767ff2e90ad88c418c3cc77f1d Mon Sep 17 00:00:00 2001 From: fred-fri <fred-fri@dsv.su.se> Date: Fri, 25 May 2012 17:38:48 +0900 Subject: [PATCH 1/3] trying to make querying by head supervisor name work --- .../serviceimpls/ProjectServiceImpl.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java index 673cc66625..5e88944a13 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java +++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java @@ -53,7 +53,8 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl @Override public Page<Project> find(String filterString, Pageable pageable) { - return projectRepo.findAll(titleContains(filterString), pageable); +// return projectRepo.findAll(titleContains(filterString), pageable); + return projectRepo.findAll(titleContains(filterString).or(headSupervisorFirstNameContains(filterString).or(headSupervisorLastNameContains(filterString))), pageable); } @Override @@ -128,6 +129,17 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl return QProject.project.title.contains(searchTerm); } + private BooleanExpression headSupervisorFirstNameContains(String searchTerm){ + if (QProject.project.headSupervisor.isNotNull()){ + + } + return QProject.project.headSupervisor.user.firstName.contains(searchTerm); + } + private BooleanExpression headSupervisorLastNameContains(String searchTerm){ + return QProject.project.headSupervisor.user.lastName.contains(searchTerm); + } + + private BooleanExpression hasProjectClass(ProjectClass pc) { if (pc != null) return QProject.project.projectClass.eq(pc); From ff755e7acdbc0cbe5fc8fdd4f7b7e583cc0ed56a Mon Sep 17 00:00:00 2001 From: fred-fri <fred-fri@dsv.su.se> Date: Tue, 29 May 2012 17:09:31 +0900 Subject: [PATCH 2/3] searching projects on head supervisor works now --- .../se/su/dsv/scipro/data/dataobjects/Project.java | 4 +++- .../springdata/serviceimpls/ProjectServiceImpl.java | 13 +++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java b/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java index bff1b9652c..5d17b6c258 100644 --- a/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java +++ b/src/main/java/se/su/dsv/scipro/data/dataobjects/Project.java @@ -1,5 +1,6 @@ package se.su.dsv.scipro.data.dataobjects; +import com.mysema.query.annotations.QueryInit; import org.apache.wicket.markup.html.panel.Panel; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; @@ -51,8 +52,9 @@ public class Project extends DomainObject implements Comparable<Project>, Iconiz @Sort(type=SortType.NATURAL) //Required by hibernate private SortedSet<ProjectFollower> projectFollowers = new TreeSet<ProjectFollower>(); - @ManyToOne + @ManyToOne @SortableField + @QueryInit({"user"}) private Employee headSupervisor; @OneToOne(mappedBy="project", orphanRemoval = true) diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java index 5e88944a13..43c36ff6c8 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java +++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java @@ -126,17 +126,18 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl } private BooleanExpression titleContains(String searchTerm) { - return QProject.project.title.contains(searchTerm); + return QProject.project.title.containsIgnoreCase(searchTerm); } private BooleanExpression headSupervisorFirstNameContains(String searchTerm){ - if (QProject.project.headSupervisor.isNotNull()){ - - } - return QProject.project.headSupervisor.user.firstName.contains(searchTerm); +// if (QProject.project.headSupervisor.isNotNull()){ +// +// } + return QProject.project.headSupervisor.user.firstName.containsIgnoreCase(searchTerm); } + private BooleanExpression headSupervisorLastNameContains(String searchTerm){ - return QProject.project.headSupervisor.user.lastName.contains(searchTerm); + return QProject.project.headSupervisor.user.lastName.containsIgnoreCase(searchTerm); } From 84dccfd927f4d3b0b78ec35283edcd4a20bc9833 Mon Sep 17 00:00:00 2001 From: fred-fri <fred-fri@dsv.su.se> Date: Tue, 29 May 2012 17:09:47 +0900 Subject: [PATCH 3/3] cleanup --- .../dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java index 43c36ff6c8..3af44a6f31 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java +++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ProjectServiceImpl.java @@ -130,9 +130,6 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl } private BooleanExpression headSupervisorFirstNameContains(String searchTerm){ -// if (QProject.project.headSupervisor.isNotNull()){ -// -// } return QProject.project.headSupervisor.user.firstName.containsIgnoreCase(searchTerm); }