Если у меня есть следующая сопоставленная коллекция в POJO с использованием JPA/Hibernate Annotations:
@OneToMany(mappedBy = "columnName", fetch = FetchType.LAZY)
@OrderBy("aField")
@MapKeyJoinColumn(name = "id_fk")
@LazyCollection(value = LazyCollectionOption.EXTRA)
private Set<PojoClass> collection = new HashSet<>();
Можно ли ограничить размер загруженной коллекции конкретным номером n или установить размер страницы на ленивую загрузку первых n элементов коллекции без загрузки всех элементов или любых других элементов из других экземпляров класса (например, с @BatchSize)?
Обратите внимание, что вопрос явно ссылается на сопоставления POJO, не делая дополнительных запросов, используя критерии или любой другой способ программного ограничения размера в явных запросах.
Возможные решения, которые я рассматривал, - это найти реализацию инструкции SQL TOP в Hibernate, надеюсь, в качестве аннотации или создать пользовательский CollectionPersister для изменения сгенерированного запроса (хотя для этого потребовалось бы, чтобы оператор TOP был реализован в поддерживаемой диалекты).