added dao method for retrieving supervisors based on specific keyword

This commit is contained in:
Emil Siverhall 2012-02-27 16:01:28 +01:00
parent 1b38a5e172
commit 882b7849d2
2 changed files with 16 additions and 0 deletions
src/main/java/se/su/dsv/scipro/match/dao

@ -9,6 +9,7 @@ import se.su.dsv.scipro.data.dataobjects.Language;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.data.dataobjects.User;
import se.su.dsv.scipro.match.dataobject.Availability;
import se.su.dsv.scipro.match.dataobject.Keyword;
public interface SupervisorDao extends QueryableDao<Employee, SupervisorDaoParams>{
@ -19,6 +20,8 @@ public interface SupervisorDao extends QueryableDao<Employee, SupervisorDaoParam
List<Employee> getCapableSupervisors(ProjectClass projectClass,
Set<Language> languages);
List<Employee> getSupervisorsByKeyword(Keyword keyword);
List<Employee> getAutoCompleteCapableSupervisors(
/*final ProjectClass projectClass, final Set<Language> languages,*/ final String searchString, int limit);

@ -95,6 +95,10 @@ SupervisorDao {
new QuerySet().projectClass(projectClass).languages(languages)
.fetchCallback());
}
public List<Employee> getSupervisorsByKeyword(final Keyword keyword) {
return getJpaTemplate().execute(new QuerySet().keyword(keyword).fetchCallback());
}
public List<Employee> getAutoCompleteCapableSupervisors(
/*final ProjectClass projectClass, final Set<Language> languages,*/
@ -126,6 +130,15 @@ SupervisorDao {
}
return this;
}
public QuerySet keyword(Keyword keyword) {
if (keyword != null) {
getQuery().combine(
new Query().join("_.keywords.keywords k").where("k = :keyword").parameter(
"keyword", keyword)).distinct();
}
return this;
}
public QuerySet orderByUser() {
getQuery().combine(RoleDaoJPAImp.orderByUserQuery());