public class Manager{
@ManyToMany(cascade=CascadeType.ALL, fetch = FetchType.LAZY)
@BatchSize(size = 10)
protected Collection<Employee> employees= new ArrayList<Employee>();
.
.
}
假设经理A有30名员工向他汇报。我希望在我的UI中一次看到10个。我使用过@BatchSize但它没有用。我该如何使用它并提供任何合适的解决方案。
答案 0 :(得分:1)
@BatchSize=10
告诉Hibernate通过批量的10个元素加载你的集合,但它仍然会加载完整的集合。
您必须实现查询并使用setFirstResult
和setMaxResult
来控制要加载的对象以及所需的对象数量:
entityManager.createQuery("from Stuff").setFirstResult( 5 ).setMaxResults( 10 ).getResultList();