java - 子树结构的 JPA 合并

标签 java jpa

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

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

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

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

最佳答案

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

您是分配一个新的 id,还是在每次合并之前将 id 设置为空?

您正在使用 orphanRemoval 吗?

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

关于java - 子树结构的 JPA 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921034/

相关文章:

java - 在 Ubuntu 上从 CMD 安装 Groovy 后未链接的 java jar

java - CriteriaQuery 加入字符串值

java - 如何加入两个与 JPA/Hibernate 的关联

java - 如何停止Java程序的线程?

java - 当该程序显示无法找到或加载主类时,如何使该程序运行?

java - 在 Java 中生成唯一 ID 的最佳方法

java - hibernate -Eclipse

java - JPA 一对一关系未被识别

java - EclipseLink 延迟加载卡在引用类上

java - 捆绑 OSGi 依赖库的标准方法是什么?