【发布时间】:2014-01-07 12:37:28
【问题描述】:
首先,我已经在许多问题和线程中寻找解决方案,但没有人能够回答它来解决它,这就是我问它的原因。
问题是,我有一个模型有 2 个 List,它们被声明为已加载 Lazy,因为它们很重,我不希望每次加载 product 时都加载它们。例如,在下面的代码中,两个映射列表都是延迟加载的。
class Product{
Integer id;
List<CategoryMapping> categoryMappings;
List<BrandMapping> brandMappings;
}
假设我在 web 服务中有一个名为 getAllProducts() 的方法,其唯一职责是返回一个 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(所有这些的最新稳定版本)并且所有类都是注释驱动的
【问题讨论】: