我得到一个LazyInitializationException,我不知道为什么。我将一个实体(BaseEntity with id)作为数据存储在primefaces树节点上,以使其成为动态的(即onNodeExpand事件处理程序从db中获取展开的节点子节点)。我知道,实体变为分离后的渲染这就是为什么我不中onNodeExpand下面添加子节点:旧的“org.hibernate.LazyInitializationException ...无法初始化代理 - 没有会话”:不明白为什么
Product parentProduct = productService.findById(entity.getId());
这回,我认为会被“附加”的实体,但当我遍历延迟加载一对多的关系我得到LazyInitializationException中:
for (Module module: parentProduct.getModules()) {
我不理解的是什么?
编辑:
ProductService是@Stateless EJB注入如下成ViewScoped豆:
@Named
@ViewScoped
public class MasterBean implements Serializable {
private static final long serialVersionUID = 3153934047649103375L;
TreeNode root;
@EJB
ProductRepo productService;
findById是一个通用的CrudRepository:
public E findById(final K id) {
return em.find(entityClass, id);
}
这与您处理交易的方式有关。向我们展示加载“parentProduct”并使用其模块的代码,我们会告诉你什么是错误的。 –
嗨Ean:编辑并添加更多信息。 – dashambles