From 7c945cca3feb9a23cc1839a9a0e673d07bf60f4c Mon Sep 17 00:00:00 2001 From: Niklas Herder <herder@dsv.su.se> Date: Wed, 11 Apr 2012 13:31:57 +0200 Subject: [PATCH] Trying to fix HQL. --- .../dsv/scipro/springdata/repos/SupervisorRepo.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/springdata/repos/SupervisorRepo.java b/src/main/java/se/su/dsv/scipro/springdata/repos/SupervisorRepo.java index cfc5cc8514..6e9bc33484 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/repos/SupervisorRepo.java +++ b/src/main/java/se/su/dsv/scipro/springdata/repos/SupervisorRepo.java @@ -13,13 +13,15 @@ import java.util.List; * fred-fri * date: 2012 03 23 */ -@Transactional(readOnly = true) +@Transactional ( readOnly = true ) public interface SupervisorRepo extends JpaRepository<Employee, Long>, QueryDslPredicateExecutor<Employee> { - @Query("select employee from Employee employee join employee.keywords.keywords keywords " + - "where keywords.type.name = :keywordTypeName and keywords.deleted = false " + - "order by employee.keywords.keywords.size desc, employee.user.lastName desc ") - public List<Employee> findSupervisorDescDirection(@Param("keywordTypeName") String keywordTypeName); + @Query ( "select employee from Employee employee left outer join employee.keywords.keywords keywords " + + "where (size(employee.keywords.keywords) = 0 or (keywords.type.name = :keywordTypeName and keywords.deleted = false)) " + + "order by size(employee.keywords.keywords) desc, employee.user.lastName" ) + public List<Employee> findSupervisorDescDirection( + @Param ( "keywordTypeName" ) + String keywordTypeName); }