假设我在一个POJO中使用JPA/Hibernate注解来映射以下集合:
@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映射,而不是通过标准查询、使用Criteria或任何其他编程方式限制大小。
我一直在寻找的可能解决方案是,在Hibernate中查找SQL TOP语句的实现,希望它作为注释存在,或创建自定义CollectionPersister以修改生成的查询(虽然这将需要在支持的方言中实现TOP语句)。