JPA合并了一个子树结构

时间:2013-04-10 08:44:15

标签: java jpa

我有一个实体,其中包含许多与其他实体的OneToMany关系。其中一个实体实际上是树结构(有三个级别)。

当我更新我的对象(在servlet调用中)时,我更新所有对象字段,包括树结构,但仅在根级别(第一级)。更新后,我会合并对象。

虽然有点慢,但效果很好。我设置JPA日志记录以查看正在执行的实际sql事务,并注意到树结构总是在数据库中完全重新生成(即删除和插入所有对象)。其他字段不是这种情况,即只更新已更改的字段。就好像eclipselink(我使用eclipselink)每次都将树结构视为新结构。

这是正常行为吗?在合并之前,我是否需要扫描树并更新每个树节点?

1 个答案:

答案 0 :(得分:0)

树结构的id是什么(包括代码)?

您是在分配新ID还是在每次合并前将ID设为null?

您使用的是orphanRemoval吗?

最重要的是如何合并更改(包括代码)。