当前位置: 首页 > 知识库问答 >
问题:

在数据库中未设置删除级联时

龚威
2023-03-14

我正在尝试创建具有一对一关系的域对象。A 是父母,B 是孩子。

我尝试了许多不同的方法来将删除从 A 级联到 B,但是当我查看数据库创建时,它没有设置 ON DELETE CASCADE。

有人能看到我做错了什么吗

答:

@Entity    
@Table(name = "financeaccountcurrencymapping")
    public class FinanceAccountCurrencyMapping implements Serializable {

        @Id
        @GeneratedValue
        private long id;

        @OneToOne(cascade = CascadeType.ALL, optional = false, orphanRemoval = true, mappedBy = "financeAccountCurrencyMapping")
        private FinanceAccount financeAccount;

我知道CascadeType.ALL或孤儿移除应该有效果,但他们没有。

B:

@Entity
@Table(name = "financeaccount")
public class FinanceAccount implements Serializable {


    @OneToOne(optional = true)
    private FinanceAccountCurrencyMapping financeAccountCurrencyMapping;

有人能明白为什么它不级联删除吗?

共有1个答案

乐正心水
2023-03-14

我解决了,但没有使用 JPA

我在孩子身上设置了@OnDelete(操作=OnDeleteAction.CASCADE)

 类似资料:
  • 在数据库中,将有一个列,并对的列具有外键约束。 对于在删除时级联的外键约束,可能执行的一些操作包括、和。这给出了以下方案组合。 a:在JPA中对父级进行级联删除调用,在删除父行时删除数据库中的子级。 b:在JPA中级联删除,在父删除时将子表中的外键列设置为null。在这种情况下,@joincolumn中的和中的可能需要为true/false。 C:在JPA中进行级联删除,在数据库中对外键删除不做任

  • 嗨,我遇到这样的情况: 带有2个字段的实体标记,其中包含2组对象(Obj1、Obj2)。删除Obj1时,我想删除标记实体中设置的Obj1中包含的所有信息。你能告诉我怎么做吗? 检查点中没有对标记的引用。若我将Cascade设置为ManyToMany,那个么当我删除标记时,所有带有该标记的用户都会被删除。我想要的是在删除检查点时删除tag\u检查点表中的行。我应该自己做还是有好办法??

  • 我想知道我应该怎么做,因为我读了很多文章试图理解这一点,包括很多问题。我读过的书中,没有一本是非常中肯的。 我想知道当使用级联规则以及应用程序定义数据库时会发生什么,因为这将定义我应该采用以下方法还是其他方法。 如果我现在对对象调用删除操作(无论是通过还是),会发生以下哪种情况? > hibernate操作将删除已加载到会话缓存中的所有相应条记录(可能是也可能不是实际数据库中存在的所有条记录),然

  • 问题内容: 我正在开发使用sqlalchemy 0.6的现有应用程序的扩展。 该应用程序具有以非声明方式创建的sqlalchemy表。我正在尝试在扩展程序中创建一个新表,该表的外键列指向应用程序数据库中主表的主键,并且以声明方式创建它。 这一切都很好,加载扩展程序后就创建了表,一点也没有抱怨。我的表将打印出来,并演示已经添加了新行。我想要并认为可能的(但不知道,因为我从未使用过sql或任何其他数据

  • 我试图通过联接表的一个外键级联删除联接表中的行,它有另一个与之相关的表,我也想删除与此ID相关的所有行。看起来像下图。当我使用会话时。使用hibernate删除(reqCandObject)它工作正常,并通过从候选jobReq表中删除一个条目以及相关注释进行级联。但是,我想删除所有具有特定候选ID的候选项(并删除注释)。我尝试了下面的函数,但与nice hibernate不同。删除(对象)函数,此

  • 问题内容: 性能是关键:在数据库内部级联删除/更新还是让Hibernate / JPA处理它更好? 如果级联在DBMS内部,这会影响查询数据的能力吗? 如果这很重要,我正在使用HSQLDB。 问题答案: 对于级联更新,如果您在数据库中具有外键约束,则根本无法在应用程序空间中执行此操作。 示例:假设您有一个针对美国各州的查找表,主键为两个字母的缩写。然后,您有了一个表,用于引用该表的邮寄地址。有人告