Prova a utilizzare il costruttore del tuo DTO.
Dichiara un nuovo costruttore
public TopProductDTO(String text, Integer count) {
this.text = text;
this.count = count;
}
Nella tua query usa il nuovo Costruttore
@Query("SELECT new TopProductDTO(p.textToSearch, count(id))FROM Product p GROUP BY text_to_search ORDER BY counter DESC")
List<TopProductDTO> findTopProducts();
}
Usa il nome completo della tua classe.