Bom dia
Sou iniciante no hibernate e estou com o seguinte erro.
javax.servlet.ServletException: object references an unsaved transient instance - save the transient instance before flushing: dominio.Documento
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:95)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Já pesquisei no forum e falaram algo de usar o session.flush(); coloquei mas não adiantou.
Tenho o seguinte relacionamento entre as tabelas:
// Esta na Classe Documento
@OneToMany(mappedBy="documento", fetch= FetchType.LAZY)
@Cascade(CascadeType.ALL)
private Collection<Visualizacao> visualizacao;
//Esta na Classe Visualizacao
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="cd_documento", insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Documento documento;
E os metodos que estão envolvidos são esses:
public void armazenaComentario (Comentario comentario) throws ServletException, IOException{
this.daoFactory.beginTransaction();
this.daoFactory.getComentarioDao().add(comentario);
this.daoFactory.commit();
this.request.getRequestDispatcher("documento.abrir.logic?documento.cdDocumento=1").forward(request, response);
// Ate aqui funciona e envia para o metodo abaixo, quando o metodo abre é que ocorre o erro
}
public void visualDoc(Visualizacao visual){
this.listaVisualizacao = this.daoFactory.getVisualizacaoDao().find("documento.cdDocumento",
visual.getDocumento().getCdDocumento());
}