Inserir código mysql na query usando if ou no spring data

Queria saber se tem como inserir um codigo do mysql usando o IF, algo parecido com o código abaixo.

DECLARE st int;
SET st = 1;

SELECT c.* 
FROM tbl_contrato c
IF(st = 1, "where c.contrato_id = 1", "");

Eu uso o spring data e repository. Se tiver alguma forma de fazer algo similar ao que tento fazer abaixo tambem serviria

A questão é que minha query pode mudar bastante se se eu tiver que criar varias chamadas pra cada opção ficaria extremamente grande

assim:

@Query(value = SELECT "+ sql +" " , nativeQuery = true)
public List<OrderRequest> getJoin1(String sql);

ou algo assim:

@Query(value = SELECT ?1 , nativeQuery = true)
public List<OrderRequest> getJoin2(String sql);