2015-10-13 6 views
5

Einige Online-Beispiele für MySema Querydsl Nutzung verlassen sich auf die JPAQuery#list() Methode, z. this stackoverflow answer enthält ein GROUP BY/COUNT-Aggregatbeispiel. Es wird auch überall in der official documentation bezeichnet.Mysema Querydsl: Es gibt keine JPAQuery # list() -Methode

Allerdings sehe ich diese Methode nur auf die JPAQuery Klasse. Es wird nicht in der Autovervollständigung der IDE angezeigt und ist nicht in der von Maven heruntergeladenen JAR-Datei enthalten.

Ich habe diese Abhängigkeiten zu meinem Maven Projekt hinzugefügt:

<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-apt</artifactId> 
    <version>4.0.4</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-jpa</artifactId> 
    <version>4.0.4</version> 
</dependency> 

Warum ist die JPAQuery#list() Methode präsentiert nicht?

Antwort

3

Die Methode JPAQuery.list wurde entfernt, als Querydsl von der 3.x auf die 4.x-Leitung aufgerüstet wurde. Da Sie Version 4.0.4 verwenden, ist diese Methode nicht mehr verfügbar.

Wie ich aus dem Lesen der release notes verstehe, enthält Version 4 eine Menge wichtiger Änderungen in der Codebasis, die älteren Code bricht. Sie haben zwei Möglichkeiten:

  • Herabstufung auf die letzte Version der 3.x-Linie, die 3.6.8 und verwenden Sie die list Methode
  • keep Version 4.0.4 verwenden, fetch Methode statt. Werfen Sie einen Blick auf this GitHub issue für die Liste der Änderungen.
+0

Vielen Dank Tunaki. Genau davor hatte ich Angst. Ich denke, ich werde versuchen, bei 4.0.4 zu bleiben und herauszufinden, wie ich meine Abfragen aktualisieren kann. @Mysema people: Würde es jemandem etwas ausmachen, das Referenzdokument zu aktualisieren? – SputNick

+0

Danke für die Köpfe hoch. Wird behoben https://github.com/querydsl/querydsl/pull/1626 –

+0

Was ist mit der Liste Methode, die einen Parameter (in MySema). fetch() nimmt keine Parameter an. – Tisha