如何分享Hibernate的多对多关系?

时间:2014-03-31 13:07:47

标签: hibernate pagination

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但它没有用。我该如何使用它并提供任何合适的解决方案。

1 个答案:

答案 0 :(得分:1)

@BatchSize=10告诉Hibernate通过批量的10个元素加载你的集合,但它仍然会加载完整的集合。

您必须实现查询并使用setFirstResultsetMaxResult来控制要加载的对象以及所需的对象数量:

entityManager.createQuery("from Stuff").setFirstResult( 5 ).setMaxResults( 10 ).getResultList();