Ich versuche, eine Cassandra-Tabelle mit der IN-Klausel und der @Query-Annotation aus Spring Data abzufragen. Ich habe eine Tabelle mit einem Partitionsschlüssel von last_name und einem Clusterschlüssel von first_name.
Ich habe diese Abfrage funktioniert
%Vor%und ich möchte etwas wie
machen %Vor%Ich arbeite mit
%Vor%Aber aus einer Reihe von Gründen (Code-Stil, Testen, ich schwöre, es gibt mehr) würde ich lieber @Query verwenden. Irgendwelche Ideen?
BEARBEITEN FÜR MEHR INFO!
Die Übergabe in einem Array, Set oder einer Liste gibt Caused by: java.lang.IllegalArgumentException: encountered unsupported query parameter type [class [Ljava.lang.String;] in method public abstract
Auch versucht:
%Vor% Nichts gefunden, die Bibliothek sucht nach einer einzelnen Person mit dem angegebenen Namen ('Joe,Jim')
Nichts gefunden, die Anfrage wurde gemerkt und endet ('''Joe'',''Jim''')
Nichts gefunden, die Anfrage wurde gemerkt und endet ('Joe'',''Jim')
Sie müssen Armschienen verwenden, wenn Sie IN
verwenden.
Aber es gibt einige andere Probleme in Ihrem Code. Ich änderte sie alle zu einem guten Kodierungsstandard wie unten. Einschließlich meiner persönlichen Favoriten der Verwendung von benannten Parametern.
%Vor%Es scheint nicht möglich zu sein!
Ich habe den Quellcode von spring-data-cassandra-1.3.2.RELEASE.jar .
Die zulässigen Datentypen von Parametern in der Abfrage-Methode sind %Code%.
Sie können in
gefunden werden %Vor% Wenn wir andere Datentypen übergeben, wird String.class, CharSequence.class, char.class, Character.class, char[].class, long.class, Long.class, boolean.class, Boolean.class, BigDecimal.class, BigInteger.class, double.class, Double.class, float.class, Float.class, InetAddress.class, Date.class, UUID.class, int.class are Integer.class
org.springframework.data.cassandra.repository.query.CassandraQueryMethod.verify(Method method, RepositoryMetadata metadata)
ausgeben.
Tags und Links java spring spring-data cassandra spring-data-cassandra