我有像这样的实体
@Entity
@Table(...)
public class ENTITY_1 {
//....
private ENTITY_2 entity_2 ;
private ENTITY_3 entity_3 ;
private Set<ENTITY_3> entities_3 = new HashSet<ENTITY_3>(0); ;
private ENTITY_4 entities_4 = new HashSet<ENTITY_4>(0); ;
//...
我希望在我的jsp中显示查询结果,所以我使用fetch发出请求以获取所有相关实体以避免延迟初始化异常left join fetch
。
我的请求基于我的ENTITY_1(select .. from ENTITY_1
)
但我使用分页每页只有10个结果,因此提取会减慢我的请求所以我使用了@BatchSize(size=10)
。
我的问题是如何在我的jsp中显示相关实体的所有数据,因为我得到了延迟初始化异常。
我的jsp就像:
${entity_1_model.discription}
//...
<c:forEach var="entity_4" items="${entity_1_model.entities_4}">
<span class="">${entity_4.name}</span>
</c:forEach>
答案 0 :(得分:1)
最快最简单的解决方案是在执行主查询后获取数据。试试这样的事情
page.content = query.offset(pageNumber*pageSize).limit(pageSize).list(ao);
for (Content cont : page.content) {
Hibernate.initialize(cont.getEntities_4());
}