2017-03-09 6 views
0

Ich bin mir sicher, dass ich die offensichtlich offensichtlich vermisse, aber ich kann nicht herausfinden, was die "Q" -vorgegebenen Typen sein sollen, oder wie man sie löst. Grundsätzlich werden in der gesamten Java-Dokumentation QSomething-Klassen verwendet, aber ich kann keine Erklärung finden, was sie wirklich sind, wie das Präfix funktioniert oder wie es aufgelöst wird. Auch am Anfang wird here, QCategory c = QCategory.category; ohne Hinweise verwendet, wie diese Q-Präfix Typen aufgelöst werden. Wenn ich versuche, ein Objekt gemäß dieser Syntaxlogik zu erzeugen, wird vorhersagbar "[abc] kann nicht in einen Typ aufgelöst werden". Wenn also jemand etwas Licht auf dieses "mystische" QSometype-Zeug werfen könnte, wäre ich sehr dankbar.RavenDB Abfrage-Alias ​​in Java

Edit: Ich nicht zur Zeit Maven für meine Eclipse-Setup mit (das Tutorial erwähnt Maven pom) dies ohne Verwendung von Maven unmöglich ist? Ich habe einige mehr untersucht und ich verstehe, dass die Q-Klassen automatisch von QueryDSL und Maven generiert werden. Mein Projekttyp in Eclipse ist ein dynamisches Web, und ich bin mir nicht sicher, ob ich das in ein Maven-Projekt konvertieren soll/sollte. Ich bin mir nicht einmal sicher, ob das mein Problem lösen würde.

Dank

Antwort

0

Die automatisch generierten Klassen sind, wenn Sie Setup Maven verwenden, es funktioniert einfach. Der Konfigurationseintrag dafür ist <processor>net.ravendb.querydsl.RavenDBAnnotationProcessor</processor>

Dies verwendet QueryDSL, um die Abfrageklassen zu generieren.

Die Erklärung in der Dokumentation ist:

Bitte beachten Sie, dass Plugins Abschnitt enthält net.ravendb.querydsl.RavenDBAnnotationProcessor. Da Java LINQ nicht hat, müssen alle Definitionen von Indizes/Transformatoren unter Verwendung von Strings erstellt werden. Alternativ können Sie das Studio verwenden, um Indizes/Transformer zu erstellen. Sie können QueryDSL jedoch auch für stark typisierte Abfragen verwenden. Um QueryDSL zu verwenden, müssen Sie Ihre Entitäten mit @QueryEntity Annotation markieren und die Codegenerierung in pom.xml aktivieren.

Sie können dies manuell erzeugen, http://www.querydsl.com/static/querydsl/2.7.3/reference/html/ch03s02.html

+0

Ayende, vielen Dank für Ihre Hilfe sehen! Ich habe mich entschieden, mein Projekt doch zu "mavenisieren", und es funktioniert tatsächlich. Ich zögerte etwas zu wechseln, weil ich fürchtete, dass dem Projekt etwas Schlimmes zustoßen könnte, sobald Eclipse es automatisch in ein Maven-Projekt verwandelte. Es tat es nicht. –