2017-07-18 3 views
0

hier ein Repository ist, und ich möchte Unternehmen finden, wo menu_id in einer Sammlung, ich glaube, meine Funktion Namespringdata JPA in Sammlung

@Repository 
public interface MenuEntityRepository extends JpaRepository<MenuEntity,Long>{ 
    ArrayList<MenuEntity> findByMenuIdIn(List<Long> menuId); 
} 

ist ok, aber ich bekomme immer Fehler:

java.lang.IllegalArgumentException: Parameter value element [1] did not match expected type [java.lang.Long (n/a)] 
+0

Sie keine konkreten Typen verwenden sollten, ersetzen Sie bitte 'ArrayList' mit' list' – Arek

+0

@Arek habe ich versucht, immer noch nicht funktioniert .. –

Antwort

0

Ok aussehen wie ArrayList<MenuEntity> sollte zu geändert werden, weil es nicht in der Sammelklasse Arraylist ist in der abstrakten Sammelklasse müssen Sie zuerst versuchen. im Falle, dass

Unten helfen könnte, ist meine alte Antwort

Ich denke, Ihre findMyMenuIdIn(List<Long> menuId) ist, können Sie nicht unterstützt Sie Ihre eigene Abfrage mit Ihrem Service-Modul vornehmen müssen nicht das Sie im Repository implementieren findByMenuId (Long menuId) tun können, und machen Das Servicemodul durchläuft diese Abfrage.

+0

http://docs.spring.io/spring-data/jpa/docs /1.6.0.RELEASE/reference/html/jpa.repositories.html#jpa.query-methods, aber das Dokument sagt, es wird unterstützt –

+0

AbstractCollection ist ein Werkzeug der Sammlung, funktioniert immer noch nicht für die Liste

0

Ihr Methodenname findByMenuIdIn(List<Long> menuid) ist in der Tat richtig und wird unterstützt. Ich benutze es und es funktioniert für mich. Der Fehler, den Sie bekommen, hat jedoch damit zu tun, dass das Argument in die Methode übergeben wird, in der Sie es aufrufen. java.lang.IllegalArgumentException: Parameter value element [1] did not match expected type [java.lang.Long (n/a)] schlägt vor, dass das zweite Objekt in Ihrer Sammlung möglicherweise nicht vom Typ Long10 ist. Überprüfen Sie, ob alle Elemente in der Auflistung (das Argument der Methode) vom Typ Long sind. Möglicherweise möchten Sie das Code-Snippet von wo Sie die Methode aufrufen, einschließlich, wie Sie die Sammlung hier erstellen. Ich hoffe das hilft!

Verwandte Themen