Это невозможно с JPA.
Он просто позволяет выполнять простые операторы SQL без какой-либо условной обработки.
Во многих случаях фактически можно реализовать требуемую условную логику в самом SQL как Turo , описанное в его / ее комментарии.
Поскольку вы, похоже, используете Spring Data JPA, вы также можете использовать Specifications
для динамического создания условий.
Другой альтернативой может быть использование MyBatis , которое позволяет создавать операторы SQL способом, аналогичным тому, который вы изложили в своем вопросе.
Следующий пример взят из http://www.mybatis.org/mybatis-3/dynamic-sql.html
<select id="findActiveBlogWithTitleLike"
resultType="Blog">
SELECT * FROM BLOG
WHERE state = ‘ACTIVE’
<if test="title != null">
AND title like #{title}
</if>
</select>