是否可以使用 Hibernate 或 JPA Annotations 限制@OneToMany集合的大小?
2022-09-01 07:18:21
如果我在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 映射,而不是进行其他查询,使用条件或任何其他方式以编程方式限制显式查询中的大小。
我一直在寻找的可能解决方案是在Hibernate中找到SQL TOP语句的实现,希望作为注释或创建自定义CollectionPersister来修改生成的查询(尽管这需要在支持的方言中实现TOP语句)。