Как выполнить топ-10 репозитория JPA - PullRequest
0 голосов
/ 10 января 2020

Как написать этот запрос в репозиторий JPA?

select TOP(10) id_libro, count(*) as occ from noleggi 
group by id_libro
order by occ desc

Моя сущность:

public class Noleggio {

@Id
@NotNull
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;


@NotNull
@Column(name = "inizio_prestito")
private LocalDate inizioPrestito;

@NotNull
@Column(name = "fine_prestito")
private LocalDate finePrestito;

@NotNull
@ManyToOne
@JoinColumn(name = "id_utente")
private Utente utente;

@NotNull
@ManyToOne
@JoinColumn(name = "id_libro")
private Libro libro;

1 Ответ

0 голосов
/ 11 января 2020

Вы можете использовать свойство nativeQuery аннотации @Query, применяя его к методу репозитория JPA, который иногда весьма полезен для агрегатных или сложных запросов, например:

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;

public interface NoleggioRepository extends CrudRepository<Noleggio, Long> {

    @Query(value = "select TOP(10) id_libro from noleggio order by occ desc", nativeQuery=true)
List<Noleggio> findSomethingFromNoleggio();

}

Дополнительная информация: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#NativeQueries

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...