实体CRUD w / OneToMany和orphanRemoval

时间:2011-09-29 05:04:44

标签: java hibernate spring jpa crud

我正在为Web应用程序构建一些CRUD表单。我有一个实体,比方说Part,它有自己的字段(sku,价格等)以及通过@OneToMany到其他实体的链接。我布置CRUD界面的方式是在一个表单上编辑零件数据点,并以单独的形式(在不同的选项卡上)编辑相关的数据点。

当我提交零件表格时,它会发布零件ID,价格,sku等,但没有相关数据。当Spring执行数据绑定时,它将调用我的Part类上的无参数构造函数,然后调用setPrice,setId,setSku等。相关实体没有发布任何内容,因为它们位于单独的表单上。 Spring提供给我的part对象然后使用JPA合并。

问题是我在OneToMany关系上使用cascade = ALL,orphanRemoval = true。删除所有这些关系,因为它们在数据绑定器生成的零件对象中是空白的。可能的解决方案:

  • 我可以让Spring以某种方式从JPA中拉出Part而不是调用no-arg构造函数吗?
  • 获取数据绑定器生成的对象并将所有部件属性复制到从数据库中提取的对象
  • 不要使用数据绑定;从servlet请求中提取参数

显然第一个是最优选的;有没有办法实现这一目标?你是如何处理类似情况的?

0 个答案:

没有答案