gpt4 book ai didi

java - Hibernate JPA 级联类型

转载 作者:行者123 更新时间:2023-11-30 06:49:00 24 4
gpt4 key购买 nike

我已多次阅读级联类型定义,但我无法理解在我尝试实现的特定情况下应使用哪一个。

我有 @OneToMany Worker之间的关系类和 Task类,所以 worker可以有多个任务,但每个 Task仅适用于一个 Worker

private List <Task> tasksWorker 中执行任务类和 private Worker worker;Worker Task 中的对象类

我卡在了?下面,不知道我应该使用哪种级联类型。

@OneToMany(targetEntity=Task.class, mappedBy="worker", cascade=CascadeType.?, fetch = FetchType.LAZY)

这两个对象应该独立存在,但我希望对 Task 进行更改反射(reflection)Worker的对象对象,反之亦然

最终(如果我能让它工作 :) )我想写一个算法来匹配最好的 worker ,当一个新任务进入系统时我想知道我是否在正确的轨道上。谢谢

最佳答案

那么在您的特定情况下,您希望将一个实体中的更改还原到另一侧,并且如果映射实体被删除,您不想将其删除,以回答您的两个要求:

Both objects should exist without one another

在这种情况下,您不应使用 CascadeType.REMOVE 类型,因为它在删除拥有实体时删除与此设置关联的所有相关实体。

but i want the changes to Task objects to reflect on the Worker

在这种情况下,使用 CascadeType.PERSISTCascadeType.MERGE 类型将足以反射(reflect)双方之间的变化,如 CascadeType.PERSIST涵盖 save()persist() 操作,而 CascadeType.MERGE 将处理 merge() 操作。

有关此主题的更多详细信息,我建议阅读 HowToDoInJava Hibernate JPA Cascade Types article因为它简要说明了所有这些案例。

关于java - Hibernate JPA 级联类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43476528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com