2016-04-08 7 views
1

Ich habe hier einen Anwendungsfall, den ich nicht zu lösen scheinen. Im Grunde muss ich einen Webservice erstellen, in dem Benutzer den Couchbase-Cluster "dynamisch" abfragen können. Tatsächlich speichere ich Metadaten verschiedener Dateien, und die "Erstellung" dieser Metadaten ist Sache des Benutzers: Ich habe keine spezifischen Felder in meinem Java POJO, ich füge ein MAP ein, das als verschachteltes Objekt eingefügt wird in Couchbase.Dynamische Feldname Abfrage mit N1QL

Nun ist die Abfrage ich brauche, ist ziemlich einfach auf dem Papier und sieht ungefähr so ​​aus:

@Query("#{#n1ql.selectEntity} WHERE #{#n1ql.filter} AND $1 = $2") 
List<FileMetadata> findListMetadata(String pKey, String pValue); 

Aber es scheint nicht, 1 scheint nicht $ zu arbeiten jemals von der pKey Variable ersetzt werden. Ich benutze CouchBase 4.5 mit dem Spring Data Connector.

Haben Sie Ideen, wie Sie diesen Anwendungsfall lösen können?

+0

Sie müssen die Abfragezeichenfolge dynamisch generieren, sodass pKey in die Abfragezeichenfolge eingefügt wird und pValue als Parameter übergeben wird (wie Sie es tun). – geraldss

Antwort

1

Sie müssen die Abfragezeichenfolge dynamisch generieren, sodass pKey in die Abfragezeichenfolge eingefügt wird und pValue als Parameter übergeben wird (wie Sie es tun).