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:
view plaincopy to clipboardprint?
- // 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;
// Esta na Classe Documento @OneToMany(mappedBy=“documento”, fetch= FetchType.LAZY) @Cascade(CascadeType.ALL) private Collection 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:
view plaincopy to clipboardprint?
- 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());
-
}