我有一个实体,其中包含许多与其他实体的OneToMany关系。其中一个实体实际上是树结构(有三个级别)。
当我更新我的对象(在servlet调用中)时,我更新所有对象字段,包括树结构,但仅在根级别(第一级)。更新后,我会合并对象。
虽然有点慢,但效果很好。我设置JPA日志记录以查看正在执行的实际sql事务,并注意到树结构总是在数据库中完全重新生成(即删除和插入所有对象)。其他字段不是这种情况,即只更新已更改的字段。就好像eclipselink(我使用eclipselink)每次都将树结构视为新结构。
这是正常行为吗?在合并之前,我是否需要扫描树并更新每个树节点?
答案 0 :(得分:0)
树结构的id是什么(包括代码)?
您是在分配新ID还是在每次合并前将ID设为null?
您使用的是orphanRemoval吗?
最重要的是如何合并更改(包括代码)。