首先,我已经在很多问题和线程中搜索过这个问题的解决方案,但是没有人能够回答它解决问题,这就是为什么我要问它。
问题是,我有一个模型有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(所有这些的最新稳定版本),所有类都是注释驱动的
答案 0 :(得分:1)
创建另一个没有列表的类,并在服务上公开这个类。