Замена устаревших критериев Hibernate Criteria .list() и .scroll().JAVA

Программисты JAVA общаются здесь
Anonymous
Замена устаревших критериев Hibernate Criteria .list() и .scroll().

Сообщение Anonymous »

Я использовал Grails 3.3.18 и сейчас перехожу на Grails 6.
После обновления я получаю это предупреждение в своих журналах:

Код: Выделить всё

org.hibernate.orm.deprecation - HHH90000022: Hibernate's legacy org.hibernate.Criteria API is deprecated; use the JPA javax.persistence.criteria.CriteriaQuery instead
В своем коде я использовал критерии Hibernate двумя способами:

Код: Выделить всё

def list = Toto.createCriteria().list {
eq('exemple', XXX)
}
И для больших наборов данных:

Код: Выделить всё

def listScrollable = Toto.createCriteria().scroll {
eq('exemple', XXX)
}

while (listScrollable.next()) {
Toto toto = listScrollable.get(0)
}
Я понимаю, что теперь мне следует заменить это на GORM, где запросы {, например:

Код: Выделить всё

def list = Toto.where {
exemple == XXX
}.list()
Это работает, но я не могу найти эквивалент для прокрутки.
Если я попробую:

Код: Выделить всё

def listScrollable = Toto.where {
exemple == XXX
}.scroll()
Я понимаю

Код: Выделить всё

No signature of method: org.grails.datastore.gorm.query.criteria.AbstractDetachedCriteria.scroll() is applicable for argument types: () values: []
Как правильно эффективно перебирать большой набор результатов в Grails 6 сейчас, когда критерии Hibernate устарели?

Подробнее здесь: https://stackoverflow.com/questions/798 ... and-scroll

Вернуться в «JAVA»