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

Hibernate从onetomany删除

何和惬
2023-03-14

我有两个具有一个任意关系的表

类ServiceProvider{

...

@OneTomany(Fetch=FetchType.Eager,MappedBy=“ServiceProvider”,Cascade={CascadeType.All,CascadeType.Remove},OlphanRemove=true)@OnDelete(action=OnDeleteAction.Cascade)私有列表服务中心;...

}

类ServiceCenterDetails{

...//与ServiceProviderDomainMap@ManyToOne@JoinColumn(Name=“Service_Provider_ID”)私有ServiceProvider ServiceProvider的双向多对一关联;

...

}

我正在尝试删除提供行。但我得到以下错误:

原因:com.mysql.jdbc.exceptions.jdbc4.mysqlintegrityConstraintViolationException:无法删除或更新父行:外键约束失败(fixoline.service_center_details,constraintfk_qvahoxeovx9vmwl6mcu2c0lyw外键(service_provider_id)引用service_provider(id)

下面是我正在尝试的方法

  String hql = "DELETE FROM ServiceProvider WHERE id =  :providerId";
  Query query = sessionFactory.getCurrentSession().createQuery(hql);
          query.setParameter("providerId",providerId);

  int result = query.executeUpdate();

有人能帮忙解决吗?

共有2个答案

慕容昊焜
2023-03-14

有两件,

>

  • @OneTomany中使用CascadeType.All时,为什么要使用@OnDeleteCascadeType.All将在删除父实体时删除子实体。

    @ondelete主要用于具有@ManyToOne的子实体中。

    尝试使用任何选项并检查。

  • 姬向明
    2023-03-14

    错误消息非常清楚:存在对您试图删除的ServiceProvider的外键引用。首先删除ServiceCenterDetails:

    delete from ServiceCenterDetails where serviceProvider.id = :providerId
    
     类似资料:
    • 我有以下实体: null null 但看起来像是黑客。 所以,1。我做错了什么?看起来,直接删除子实体 2是正确的。有没有更优雅的方法来处理这个? 可复制的例子:

    • 我读过一些相关的问题,但它们和我的问题不完全一样。 我使用的是JPA Hibernate Spring,我想做一些我不确定是否仅通过配置就可以做到的事情。 我的域类具有或多或少复杂的关系。有许多元素与一个元素相关(就像是一棵树,许多元素是一个元素的子元素)。 类似的东西: 这样会得到一张桌子: 当我删除id=1的行时,我希望删除id=2和id=3的行(这可能是递归的,parent_id=2并且pa

    • 问题内容: 这是我在堆栈上的第一个问题,所以请谨慎:D 我正在尝试创建hibernate的OneToMany关系。当我尝试从数据库中获取一些数据时,出现了StackOverflowError。但是,当我删除OneToMany部分时,一切正常。这是我的REST服务的一部分,目前它可以在VMware vFabric Server和MySQL DB上运行。 获取示例: MySQL脚本: 类: 错误: 编

    • 问题内容: 我有以下实体: 球队 } 和 USER_TEAM_ROLE 现在,当使用{UTR1,UTR3}更新包含例如Team.userTeamRoles = {UTR1,UTR2}的Team实体时,我希望删除UTR2。但是我现在的方法是,旧列表保持不变,并且只将UTR3添加到列表中。 这是我目前的做法: 我认为通过执行该列表将被重置,并且由于级联,先前的列表将被删除。 任何帮助表示赞赏。谢谢 问

    • 我已经创建了纸张和Mcq问题之间的映射如下。 } 当我更新纸质实体时,它会删除所有MCQ。 SQL输出:

    • 问题内容: 我一直在搞怪它并使用它搜索了大约4天,我对Hibernate注释如何与JPA注释一起工作感到疯狂。我有两个非常简单的实体: 学生 电话 我将整个代码粘贴到这里,以便您可以看到导入的来源。我认为问题就在那里。 重要提示 :我使用的是Hibernate Docs建议的 好!现在,我创建了一个包含两个电话号码的,并将其正确保存在数据库中。这将创建以下内容: 学生 学生电话 电话 问题来了。如