2017-09-29 1 views
0

Je dois récupérer tous les enregistrements pour la colonne des joueurs dans la table des sports. Méthode SportsRepository comme ci-dessous. Après cela, je tape "gradlew clean test" et je vois. Ensuite, il va générer une erreur disant "erreur: corps de la méthode manquant, ou déclarer abstrait". Pourquoi donc? Avons-nous besoin de mettre en place le corps. Parce que la requête JPA devrait donner la sortie que je pourrais comprendre. S'il vous plaît quelqu'un sait?Spring JPA sélectionner une colonne ne fonctionne pas

+0

Pourriez-vous afficher votre définition de classe Sport? – inafalcao

+0

Cela signifie que la classe d'entité du sport est connue? @inafalcao –

+0

Oui. Je veux voir les attributs de la classe Sport. – inafalcao

Répondre

0

Dans un JAVA interface, lorsque vous essayez de définir une méthode statique, vous devez lui donner un corps de méthode, mais ici, je pense que la seule chose que vous devez faire est de retirer static de votre méthode:

@SuppressWarnings("unused")         
@Repository                
public interface SportsRepository extends JpaRepository<Sport, Long> { 
    public static final String GET_Players="SELECT players FROM Sport"; 
    @Query(value = GET_Players, nativeQuery = true) 
    public List<String> getPlayers();             
} 

Le modificateur d'accès public n'est pas non plus nécessaire ici, car Java prend public par défaut lors de la définition d'une méthode dans l'interface.

Note: Je remarque que vous avez attribué nativeQuery avec true, vous devez confirmer la GET_Players est sql, pas JQL.

+0

Merci cela fonctionne. Comment confirmer que GET_Players est sql? –

+0

@ M.David sql signifie que le nom de la table ou de la colonne provient de votre base de données réelle, et non de votre nom d'entité ou de votre nom d'entité. – Blank

+0

Noté @Forward. Comment implémenter la méthode de test pour le code ci-dessus? –