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