我正在尝试使用JPA在OneToMany关系中保留实体。我有两个实体,Proyecto(项目)和Participacion(参与)。 Proyecto可以有多个Participacion。问题是当我尝试将Participacion持久化到现有的Proyecto时。
//First, I get the selected project by the user from the database.
Proyecto proyecto = proyectoManager.getProyecto(Integer.parseInt((String) session.getAttribute("idProyecto")));
//Second, I create and set the Participacion parameters, including the project.
Participacion participacion = new Participacion();
participacion.setIdProyecto(proyecto);
participacion.setLogin(usuario);
participacion.setPorcParti(Integer.parseInt(request.getParameter("porc")));
//Finally I persist participacion with his respective project
proyectoManager.addParticipacion(participacion);
//Here, I'm trying to get the project to check if his Participacion collection contains the new participation.
proyecto = proyectoManager.getProyecto(Integer.parseInt((String) session.getAttribute("idProyecto")));
问题是我第二次从数据库中恢复项目,因为他的参与集合不包含新的参与。我尝试过使用edit()方法,甚至在persist()方法后刷新,但它不起作用。
下次部署企业应用程序时,该项目包含他各自的参与,包括新的参与,但我在第一次持续后需要它,而不再重新部署。
任何人都可以帮助我吗?谢谢。
答案 0 :(得分:0)
您如何告诉JPA您想要级联持久收藏?
我主要在我的域对象上使用注释,通常只添加如下内容:
408000
这个(或类似的)问题已在本网站上多次回答。
修改强>
此外,从上面的代码示例中,您似乎没有将Participation实例添加到项目中。我认为你需要这样的东西:
@OneToMany(cascade=CascadeType.ALL)
完成协会。