EJB延迟加载例外解决方法

出现延时加载例外,原因是实体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 

你可能感兴趣的:(bean,ejb)