我有一个实体,其中包含许多与其他实体的 OneToMany 关系。这些实体之一实际上是一个树结构(具有三个级别)。
当我更新我的对象(在 servlet 调用中)时,我更新所有对象字段,包括树结构,但仅在根级别(第一级别)。更新后,我会合并对象。
虽然有点慢,但效果很好。我设置 JPA 日志记录来查看正在执行的实际 SQL 事务,并注意到树结构始终在数据库中完全重新生成(即删除和插入所有对象)。其他字段的情况并非如此,即仅更新已更改的字段。就好像 eclipselink(我使用 eclipselink)每次都将树结构视为新的。
这是正常行为吗?在合并之前我需要扫描树并更新每个树节点吗?
最佳答案
树结构的id是什么(包括代码)?
您是分配一个新的 id,还是在每次合并之前将 id 设置为空?
您正在使用 orphanRemoval 吗?
最重要的是如何合并更改(包括代码)。
关于java - 子树结构的 JPA 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921034/