Estou seguindo de acordo com a aula e no ProdutoDao eu tenho:
public Produto find(Integer id) {
return manager
.createQuery("select distinct(p) from Produto p join fetch p.precos preco where p.id = :id", Produto.class)
.setParameter("id", id).getSingleResult();
}
no ProdutoController eu tenho:
@RequestMapping("/detalhe")
public ModelAndView Detalhe(Integer id) {
ModelAndView mav = new ModelAndView("produtos/detalhe");
Produto prod = produtoDao.find(id);
mav.addObject("produto", prod);
return mav;
}
e mesmo assim eu obtenho o seguinte erro:
mai 25, 2017 4:26:11 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [dispatcher] in context with path [/casadocodigo] threw exception [org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: br.com.casadocodigo.loja.models.Produto.precos, could not initialize proxy - no Session] with root cause
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: br.com.casadocodigo.loja.models.Produto.precos, could not initialize proxy - no Session
at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:572)
o "join fetch" deveria trazer a List< Preco> por Eager Loading no lugar do proxy que o Lazy Loading gera e isso não está ocorrendo. Alguém poderia me ajudar.