2015-10-13 24 views
5

Alcuni esempi online per l'utilizzo di Mysema Querydsl si basano sul metodo JPAQuery#list(), ad es. this stackoverflow answer contenente un esempio di aggregato GROUP BY/COUNT. Si riferisce anche a tutto il official documentation.Mysema Querydsl: Non esiste alcun metodo JPAQuery # list()

Tuttavia, non vedo questo metodo solo sulla classe JPAQuery. Non viene visualizzato nel completamento automatico dell'IDE e non è presente nel file JAR scaricato da Maven.

ho aggiunto queste dipendenze al mio progetto Maven:

<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> 

Perché è il metodo JPAQuery#list() non presente?

risposta

3

Il metodo JPAQuery.list è stato rimosso quando Querydsl è stato aggiornato dalla riga 3.x alla riga 4.x. Poiché stai usando la versione 4.0.4, questo metodo non è più disponibile.

Come ho letto dalla lettura dello release notes, la versione 4 introduce molte modifiche importanti nella base di codice che interrompe il codice precedente. Sono disponibili due opzioni:

  • downgrade l'ultima versione della linea 3.x, che 3.6.8 e si utilizza il metodo di list
  • mantenere la versione 4.0.4 e utilizza il metodo fetch invece. Dai un'occhiata a this GitHub issue per la lista delle modifiche.
+0

Grazie Tunaki. Questo è ciò di cui avevo paura. Penso che cercherò di restare con 4.0.4 e capire come aggiornare le mie query. @Messema persone: qualcuno avrebbe problemi ad aggiornare il documento di riferimento? – SputNick

+0

Grazie per l'avviso. Verrà risolto https://github.com/querydsl/querydsl/pull/1626 –

+0

E il metodo elenco che accetta un parametro (in mysema). fetch() non accetta alcun parametro. – Tisha