0

我在使用 OpenSessionInViewFilter 时遇到问题,并且在给定请求中要执行的部分中描述的对象会发生:

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

我的控制器:

@Controller
public class ProdutoIntercambiavelController {

@Autowired
private IProdutoService produtoService;

private Produto getProduto(HttpSession session){
    return (Produto)session.getAttribute("produto");
}

private void setProduto(Produto produto, HttpSession session){
    session.setAttribute("produto", produto);
}

@RequestMapping(value="/Produto/Editar/{id}/Intercambiavel/", method= RequestMethod.GET)
public String index(@PathVariable int id,Model model, HttpSession session){
    if (getProduto(session)==null)
        setProduto(produtoService.Abrir(id), session);

    model.addAttribute("produto", getProduto(session));

    return "editintercambiavel";
}

我的实体:

@Entity
public class Produto implements Serializable {

        ...

    @OneToMany(fetch=FetchType.LAZY)
    private List<ItemKitProduto> itensKitProduto = new ArrayList<ItemKitProduto>();

    @OneToMany(mappedBy="produto_pai", fetch=FetchType.LAZY)
    private List<Produto> intercambiaveis = new ArrayList<Produto>();
    @OneToOne
    private Produto produto_pai;
}

在会话中处理实体的最佳做法是什么?

4

0 回答 0