我们正在使用JCS Cache并成功放置了实体。当我们从JCS Cache检索数据时,我们能够检索权利,但如果它具有一对多关系实体,则无法检索相关实体。我们得到了懒惰的初始化exption。请建议我们。
答案 0 :(得分:0)
在将数据放入JCS Cache之前,请检索相关实体。
答案 1 :(得分:0)
对实体使用非ORM缓存机制需要小心,因为它很容易导致此类问题。实质上,您需要确保添加到Cache中的任何对象都被初始化到某个其他进程从缓存中检索它的程度。
我不熟悉JCSCache,但使用Spring的缓存抽象作为例子:
private CustomerService{
@Cacheable
public Customer loadCustomer(long id){
/*if cache contains item with Key id this
*is not called and therefore no session is
*open when the view is rendered.
*/
customerDao.findById(id);
}
}
例如,假设您的客户有一系列订单。
你有一个过程:
你有进程2:
因此,您需要确保缓存实例已完全初始化,将缓存转移到重新打开会话的DAO层,或以某种方式拦截服务层的缓存加载事件并重新附加分离的对象。