问题标签 [cascade]
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.
jpa - 如何检索通过级联与 JPA 持久保存的实体的 ID
如果一个人有一个常规的 Foo 实体并调用 persist(foo) ,则 @Id 会自动设置在实体上。但是,如果所述 Foo 实体具有通过绑定到它的 Bars 集合
并且这样的实例已经被持久化,如果创建一个新的 Bar 并将其添加到 foo 的 Bars 集合并调用 merge(foo) 刚刚创建的 Bar 将被持久化,但它的 @Id 没有更新!
有没有办法检索这个 id,而无需稍后调用 find(Foo.class, foo.getId())?
java - Hibernate:如果子级以多对一的方式链接到父级,则在删除父级时如何使 Hibernate 从子表中删除记录?
可以说我有两个表 - 具有多对一关系的“子”和“父”。如果父记录被删除,我需要删除子条目。
如果我通过在 parent.hbm 中创建一对多关联并设置 cascade="all-delete-orphan" 来链接父表的子表,这不是问题。
问题是我不想在父端建立一对多的关系,所以我在子端创建了多对一。原因是子表很大,我不想每次使用父表时都提取数百条记录。所以我的配置是这样的:
child.hbm:
而 parent.hbm 与孩子没有关联。
问题是:如果子级以多对一的方式链接到父级,则在删除父级时如何使 Hibernate 从子表中删除记录?
谢谢。
java - 运行时的 JPA 级联选项
我正在尝试通过观察所有更改然后立即持久化有问题的对象来创建一个使对象模型与数据库保持同步的应用程序。模型中的许多对象在大型列表或树中都有子对象。
当我从数据库加载一个对象时,我依靠一种单向级联关系来检索它的所有子对象并将它们包含在应用程序中。
但是,可以更改需要持久性的父对象中的字段,并且我可以确定没有任何子对象受到影响。所以我想持久化父级,而不用所有级联子级持久化访问数据库。
例如
持久化父对象时如何覆盖级联选项?或者我应该将其设置为 REFRESH 并确保我永远不需要级联持久化?
nhibernate - 我们如何在 Cascade="Delete" 执行时执行自定义方法?
例如,我有两个实体,“RealEstate”和“Picture”。RealEstate 拥有一系列图片。在映射文件中,RealEstate 中有一个用于图片的包,级联是“删除”。
如果您删除房地产,所有相关图片都将被删除。但是有什么方法可以执行自定义方法从网络服务器中删除图片。
我通过分配来做到这一点cascade="none"
,当我删除房地产时,我首先检查是否有任何与之相关的图片,如果有,我会调用DeletePicture()
它的方法。
我很好奇你在这种情况下会怎么做?
mysql - 如何在 mysql 中使用删除级联?
我有一个组件数据库。每个组件都属于特定类型。这意味着组件和类型之间存在多对一的关系。当我删除一个类型时,我想删除所有具有该类型外键的组件。但是如果我没记错的话,级联删除会在删除组件时删除类型。有什么办法可以做我描述的吗?
sql - 使用 JPA 或在数据库内部级联删除/更新?
性能是关键:在数据库内部级联删除/更新更好还是让 Hibernate/JPA 处理它更好?
如果级联位于 DBMS 内部,这会影响查询数据的能力吗?
如果这很重要,我正在使用 HSQLDB。
database - 您如何确定数据库表关系是否值得强制执行参照完整性?
我有一个应用程序,其中大多数数据库表与另一个表有很强的关系。目前我正在使用外键强制执行参照完整性,但我想知道这是否真的是最好的方法。业务用户可以从管理界面删除主表中的数据,这意味着必须执行级联删除(或编写多个删除语句),但我不确定我是否真的要删除所有其他数据同时。可能有很多数据*可能*在以后有用(可能报告?)。但是,除非与主表存在关系,否则从表中的数据对应用程序本身来说基本上是无用的。
sql - 从两个表中删除行
我有两张桌子。这些表之间有两个关系。
这两种关系是存在的。
我的问题是我需要删除表 1 中的一些行。我目前正在做,
我知道我可以在 table2 上使用 ON DELETE SET NULL。这样我就可以在 ID_XPTO2 上搜索所有具有空值的行并删除它们,但 DBA 不想使用它。
有没有更好的解决方案来完成这个过程?
sql - SQL Server 2005 - 具有级联删除的外键
在 SQL Server 2005 中有没有办法解决这个问题?
(这让我很烦恼,每次遇到它时,我都会陷入困境。但这是我第一次不得不处理并进入 Stack Overflow。请保存我所拥有的一点点理智!)
维度表:
id INT IDENTITY(1,1)
FactTable:
source_id INT NOT NULL,
target_id INT NOT NULL
我创建了一个从“Fact.source_id”到“Dimension.id”的外键,并设置了级联删除和级联更新。
当我尝试对“Fact.target_id”执行相同操作时,我收到一条错误消息,告诉“哦,不,不,不”,因为级联有多个路径可供遵循。
这里没有涉及其他外键,只有我要创建的两个。我可以在没有级联的情况下创建第二个外键,但这对我来说似乎很糟糕。这是一组将手动维护的表(它们很少会被触及,所以客户不会为 gui 付费。)这样的级联删除/更新将非常有用,但仅如果它在两个字段上。(我很喜欢一致性)
****呜咽****
sql-server - 在表 't_name' 上引入 FOREIGN KEY 约束 'c_name' 可能会导致循环或多个级联路径
我有一个名为Lesson
:
列: [LessonID, LessonNumber, Description]
...加上其他一些列的数据库表
我有另一个表名为Lesson_ScoreBasedSelection
:
列: [LessonID,NextLessonID_1,NextLessonID_2,NextLessonID_3]
完成一堂课后,将在表中查找其 LessonIDLesson_ScoreBasedSelection
以获得三个可能的下一课,每节课都与特定范围的分数相关联。如果分数是 0-33,将使用存储在 NextLessonID_1 中的 LessonID。如果分数是 34-66,将使用存储在 NextLessonID_2 中的 LessonID,依此类推。
我想Lesson_ScoreBasedSelection
用引用课程表中的 LessonID 列的外键来约束表中的所有列,因为表中的每个值都Lesson_ScoreBasedSelection
必须在课程表的 LessonID 列中有一个条目。我还希望打开级联更新,以便如果课程表中的课程 ID 发生更改,则表中对它的所有引用Lesson_ScoreBasedSelection
都会更新。
这个特定的级联更新似乎是一个非常简单的单向更新,但是当我尝试将外键约束应用于Lesson_ScoreBasedSelection
引用课程表中的 LessonID 字段的表中的每个字段时,我收到错误:
在表“”上引入 FOREIGN KEY 约束“c_name”Lesson_ScoreBasedSelection
可能会导致循环或多个级联路径。
谁能解释我为什么会收到此错误或如何实现我描述的约束和级联更新?