2016-03-15 5 views
5

angeben Ich brauche dynamische Abfrageklauseln abhängig von Benutzereingabe, d. H. Dynamisch die Spalte innerhalb einer Abfrage angeben. Alle Beispiele sind von der FormWie programmatisch Spalten in Abfrageklauseln mit phantom-dsl für Cassandra

.wo (_. ID Gln myUuid)

aber ich brauche etw entlang der Linien von

.wo ('ID' Gln myUuid)

welcher Ist nicht möglich. Gibt es eine Möglichkeit, die Spalten von Abfragen dynamisch mit phantom-dsl anzugeben?

Antwort

1

Phantom lässt keine beliebigen Modelle oder breite Reihen zu, es ist leider nicht sehr realistisch, darauf ein Objektmodell aufbauen zu können. Wenn Sie breite Reihen wollen, wird Phantom zu diesem Zeitpunkt nicht viel für Sie tun können, wir arbeiten hart daran, auch dort eine wettbewerbsfähige Lösung zu liefern, aber es ist nicht einfach, die Supermacht von Phantom kommt aus dem Objektmodell und der Autokomplettierung. typesafety/auto-migrations, die daraus resultieren.

Wenn Sie sind einfach besorgt über Migrationen und die Fähigkeit, Strukturen im Fluge und synchron mit Cassandra zu ändern, veröffentlichen wir eine sehr, sehr moderne automatisierte Migrationsfähigkeit als Teil Phantom-pro, die kommerziellen Version von Phantom.

+0

Vielen Dank für Ihre Antwort, aber es sieht so aus, als ob Sie meine Frage missverstanden haben - das Modell ist behoben. Zum Beispiel habe ich ein Objekt mit festen Feldern x, y und z. Wenn die Benutzereingabe zum Aktualisieren von x = 2 ist, muss ich modify (_. X = 2) generieren, oder für x = 3 und y = 5 muss ich modify (_. X = 3) .and (_ .y = 5) dynamisch. Wenn mein Objekt viele feste Felder hat, ist das Schreiben einer festen Methode für jede Kombination nicht möglich. Es sieht so aus, als hätte der datastax-java-Treiber ein QueryBuilder-Objekt mit einer set-Methode (String name, Object value), um dies zu tun, aber ich frage, wie man es mit phantom-dsl in scala macht? – sinel

+0

Sie können das gleiche mit Phantom tun, ich werde etwas aufschreiben. – flavian

+0

Danke - schön zu wissen, dass es getan werden kann, aber ich stecke hier fest, da ich nicht herausfinden kann, wie aus den Dokumenten oder den Beispielen in Ihrem GitHub Repo. Wenn Sie wenig Zeit haben, ein Beispiel zu geben, können Sie mir wenigstens einen kurzen Hinweis geben, wie ich es selbst versuchen kann. – sinel

Verwandte Themen