2017-08-02 3 views
-2

Wie kann ich alle Objekte aus der DatenbankCrudRepository im Frühjahr

@RequestMapping(value="/test", method=RequestMethod.GET) 
public ModelAndView recoverPass(@RequestParam("num") int num) { 
    ModelAndView mv = new ModelAndView("test"); 
    mv.addObject("lists",appRepo.findAll(num)); 
    return mv; 
} 

ich http://localhost:8080/test?num=40 in dem Browser eingegeben, aber kein Ergebnis. Der Fehler ist: findall in CrudRepository kann nicht auf (int)

Antwort

1

Das CrudRepository in Spring hat keine Methode namens findAll(), die ein Integer-Argument verwendet. findAll() ohne Argumente gibt alle Objekte zurück, nicht nur ein gegebenes für eine bestimmte Integer-ID.

Sie müssen herausfinden, was Sie wollen. Wenn Sie alle Objekte wollen, dann rufen Sie findAll() ohne Argumente auf und entfernen Sie den int-Parameter.

Wenn Sie nur ein bestimmtes Objekt mit der angegebenen Integer-ID suchen möchten, verwenden Sie stattdessen findOne (num).

+0

Vielen Dank, ich möchte alle Objekte mit einem bestimmten Feld Wert –

+0

@RayEn finden, dann sollten Sie etwas wie 'match' Abfrage verwenden – sunkuet02

+0

@RayEn Wenn Sie das tun möchten, müssen Sie Spring Datenabfragemethoden verwenden . Angenommen, Ihr Feld heißt foo mit einem String-Wert, dann fügen Sie eine Methode zu Ihrer appRepo-Schnittstelle namens findByFoo (String foo) hinzu und Spring-Daten werden es auf magische Weise für Sie arbeiten lassen. – Plog

0

Die CrudRepository im Frühjahr hat nur findAll() Methode Hexe alle Artikel aus der Tabelle zurückgibt. Wenn Sie alle Einzelteile bekommen möchten, sollten Sie

appRepo.findAll(); 

verwenden, oder Sie sollten Verfahren mit den benötigten Zustand erklären:

@Repository 
public interface AppRepo extends CrudRepository<Foo, Long> { 
    List<Foo> findBySomeValue(String someValue); 
} 

und verwenden Sie es in Ihrer Logik appRepo.findBySomeValue('bar');

0

Ich glaube, Sie versuchen, um Benutzer mit ID = 40 zu erhalten. Wenn Sie Spring-Daten jpa mit Spring-Boot verwenden, können Sie ein Repository namens userRepository erstellen und eine Methode findById() erstellen, um den Benutzer einer bestimmten ID zu erhalten.

public interface UserRepository extends JpaRepository<User, Serializable>{ 
    User findById(Long id); 
} 

Sie können dann UserRepository in Ihrem Service autowire und rufen findById (Methode). Sie können auch dasselbe UserRepository Objekt verwenden, um alle Benutzerlisten zu erhalten, indem Sie die findAll() Methode aufrufen.