Estou criando uma API REST, utilizando Spring Boot, que, através de uma tabela, exibe frases aleatórias.
Dando um Google, descobri que é possível gerar resultados aleatório através de SQL puro:
SELECT <coluna> FROM <tabela> ORDER BY RANDOM() LIMIT 1;
Fiz a consulta do Banco H2, que é banco que estou usando, e funcinou:
O problema é que, o Spring Data não reconhece o comando SQL
LIMIT
. Quando crio a query dentro do repositório, através desse código:
public interface QuoteRepository extends JpaRepository<Quote, Integer> {
@Query("SELECT detail FROM Quote ORDER BY RANDOM() LIMIT 1")
Quote findByQuote();
Quote findByActor(String actor);
}
Observação: a tabela scripts é mapeada pelo classe de domínio Quote
.
Recebo a seguinte exceção:
unexpected token: LIMIT near line 1, column 54 [SELECT detail FROM challenge.Quote ORDER BY RANDOM() LIMIT 1]
Alguém sabe de algum comando que possa substituir LIMIT
?
Desde já, muito obrigada!
Código completo no GitHub.