Я пытаюсь создать @Query в одном из своих репозиториев, который в моем примере получает необязательный логический параметр с именем «hasComment». Если Boolean задан/существует, я хочу сделать проверку длины на отдельном столбце с переменным символом («комментарий») в разделе where.Данные весны @Query: Если необязательный логический параметр задан для проверки размера другого столбца String, где:
В настоящее время им присвоен следующий код, который я не ожидал работать (и, конечно же, нет), но он должен показать, как я представлял, как он может работать.
@Query("SELECT t "
+ "FROM Test t "
+ "WHERE "
+ "(:from IS NULL OR t.startTs >= :from) "
+ "AND (:to IS NULL OR t.endTs <= :to) "
+ "AND ((:hasComment) IS NULL OR ("
+ "(CASE WHEN :hasComment = true THEN length(t.comment) > 0)"
+ "OR (CASE WHEN :hasComment = false THEN length(t.comment) = 0 OR t.comment IS NULL)"
+ ")"
Page<Test> find(@Param("from") Instant from, @Param("to") Instant to,
@Param("hasComment") Boolean hasComment, Pageable pageable);
Может ли кто-нибудь помочь мне? Я просто не могу найти информацию о том, как построить этот запрос, и даже если это вообще возможно с помощью @Query ...
работает отлично ... большое спасибо! – StephanM