出现延时加载例外,原因是实体bean从业务bean方法返回时,session已经关闭,解决方案有3个
第一:设置@OneToMany中的fetch=FetchType.EAGER
第二:在业务方法返回Order前访问多方的属性集合,如下:
public Order getOrder(String orderid){
Order order = em.find(Order.classs, orderid);
order.getOrderItems().size();
return order;
}
第三:使用join fetch查询:
select o from Order o inner join fetch o.orderItems
第一:设置@OneToMany中的fetch=FetchType.EAGER
第二:在业务方法返回Order前访问多方的属性集合,如下:
public Order getOrder(String orderid){
Order order = em.find(Order.classs, orderid);
order.getOrderItems().size();
return order;
}
第三:使用join fetch查询:
select o from Order o inner join fetch o.orderItems
reference:
http://godzwj.iteye.com/blog/398619