org.hibernate.LazyInitializationException - 通过Web服务访问模型时(Jax-ws)

时间:2014-01-07 12:37:29

标签: hibernate jax-ws

首先,我已经在很多问题和线程中搜索过这个问题的解决方案,但是没有人能够回答它解决问题,这就是为什么我要问它。

问题是,我有一个模型有2 List被声明加载Lazy,因为它们很重,我不希望每次product加载它们加载。例如,在下面的代码中,两个映射列表都是延迟加载的。

class Product{
     Integer id;
     List<CategoryMapping> categoryMappings;
     List<BrandMapping> brandMappings;
}

假设我在名为getAllProducts()的webservice中有一个方法,其唯一的责任是返回List<Product>而没有任何进一步的依赖;

我使用Hibernate完美地获取列表但是当将列表返回给客户端时,则会弹出以下错误:

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: myproj.model.catalog.Product.brandMappings, could not initialize proxy - no Session

有什么办法可以让webservice方法忽略延迟加载方法,让列表返回给客户端。

是的,请注意,我正在使用Sping,Hibernate和glassfish(所有这些的最新稳定版本),所有类都是注释驱动的

1 个答案:

答案 0 :(得分:1)

创建另一个没有列表的类,并在服务上公开这个类。