apache / apache/grails-core

Order by more than one property in criteria builder's params

Offen
#14,653 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
relates-to: gorm
Vorherrschende Sprache
Groovy
Sterne
2.9k
Forks
975
Ø Merge
1 T. 22 Std.
Gemergte PRs (30 T.)
92

Beschreibung

Sort parmeter in param map for Criteria builder doesn't work the same way as in Dynamic Finders. In dynamic finder we could do this:

```
Author.findAllByNameLike("A%", [sort: [name: "desc", id: "asc"]])
```

If we try to do the same for Criteria builder or with Detached Criteria:

```
Author.createCriteria().list(sort: [name: "desc", id: "asc"]) {
like 'name', "A%"
}
```

The ClassCastException will be thrown:

```
java.util.LinkedHashMap cannot be cast to java.lang.String. Stacktrace follows:
Message: java.util.LinkedHashMap cannot be cast to java.lang.String
Line | Method
->> 1615 | invokeMethod in org.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie bei Zeile 1615 von org.grails.orm.hibernate.query.AbstractHibernateCriteriaBuilder und reproduzieren Sie die ClassCastException mit dem Criteria-builder-Beispiel aus dem Issue. Vergleichen Sie die Parameterbehandlung mit dem Verhalten von Dynamic Finder; abgeschlossen ist die Aufgabe, wenn Criteria und Detached Criteria mehrere Sortiereigenschaften in der gezeigten Reihenfolge akzeptieren.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Bereich
databases
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.