问题标签 [orphan-removal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - JPA orphanRemoval=true 与 ON DELETE CASCADE DML 子句有何不同
我对 JPA 2.0orphanRemoval
属性有点困惑。
我想当我使用我的 JPA 提供者的数据库生成工具来创建底层数据库 DDL 以具有ON DELETE CASCADE
特定关系时,我可以看到它是必需的。
但是,如果数据库存在并且它已经有一个ON DELETE CASCADE
关系,这是否不足以适当地级联删除?除此之外还有什么作用orphanRemoval
?
干杯
java - JPA 中的 CascadeType.REMOVE 和 orphanRemoval 有什么区别?
有什么区别
和
这个例子来自Java EE Tutorial,但我仍然不明白细节。
java - 无法在 OneToMany 映射中删除孩子并添加新孩子 [休眠]
我知道这个问题已经被问过很多次了,但没有一个解决方案对我有用。
所以我有一个父类:
还有一个子类:
现在,当我收到带有新电话列表的用户类更新时,我想删除所有旧电话并添加新电话。请注意,这所有操作都发生在同一个@Transactional 中。
我试过的解决方案:
user.getPhoneList().clear()
user.getPhoneList().addAll(新电话列表)
当我尝试上述逻辑时,Hibernate 正在尝试将旧手机的 userId 设置为 null。在这个位置,我得到 DataIntegrityViolation,因为 Phone 表中的 userId 是非空列。
请提供任何可以在这里工作的适当解决方案。
java - 将实体移动到另一个拥有的 OneToMany 集合中
在我的应用程序中,有一个 Person 实体,它具有许多 PersonRole 类型的角色。
有时数据库中有重复的人,我正在尝试实现一个函数将这两个人合并为一个。由于 PersonRole 还附加了一些权限,我不想删除并重新创建它,我想将它从死亡的人移动到幸存的人:
PersonRole 中的方法如下所示:
不幸的是,它不起作用。当我运行它时,PersonRoles 被删除并且没有添加到幸存的人中。
我需要更改什么,以便通过 surviving.roles 关系添加和保留它们?
hibernate - Hibernate:删除和添加与orphanRemoval相同的实体,实体被删除
我对 Hibernate 有一个奇怪的行为。我的环境是带有 Panache 的 Quarkus,但我认为它与问题无关。
我正在使用一个带有 id、父级和子级的简单树实体。我的 moveInto 方法只是将一个孩子移动到另一个父母:
- 我把孩子从老父母身上移走了
- 我在新的父母中添加了孩子
事务完成后,孩子被完全移除,并且不考虑添加的动作。
这是正常行为吗?
实体 :
我的服务:
结果 :
postgresql - 左连接中连接条件的方向是否重要?
有两个 postgres 表,其结构大致如下:
虽然在设置 FK 约束时没有正确定义这些约束,但在应用程序逻辑中products.rawDataId
映射到rawData.id
并rawData.productId
映射到products.id
. 中的每条记录products
可以有 1 条或 0 条记录rawData
,同时也有一些孤立记录,rawData
其关联products
记录已被删除。
我正在尝试rawData
通过左连接来查找所有孤立的记录。但是,根据我的连接条件,我得到不同的行数:
这些表有大约 100k 行,因此手动遍历它们并不容易,但我想知道在什么情况下我会根据连接条件得到不同的结果。他们不应该返回相同数量的行吗?
考虑到这些表结构和约束,我是否可以执行任何其他查询来查找差异,或者更准确地获取孤立行的数量?
根据示例表,我想得到的输出是: