gpt4 book ai didi

java - 从onetomany hibernate 删除

转载 作者:行者123 更新时间:2023-12-01 12:13:40 25 4
gpt4 key购买 nike

我有两张单对多关系的表

class ServiceProvider {

...

@OneToMany(fetch=FetchType.EAGER,mappedBy="serviceProvider", cascade={CascadeType.ALL,CascadeType.REMOVE},orphanRemoval = true) @OnDelete(action=OnDeleteAction.CASCADE) private List serviceCenters; ...

}

class ServiceCenterDetails {

... //bi-directional many-to-one association to ServiceProviderDomainMap @ManyToOne @JoinColumn(name="SERVICE_PROVIDER_ID") private ServiceProvider serviceProvider;

...

}



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

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:由造成无法删除或更新父行,外键约束失败( fixoline service_center_details,约束 FK_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();


有人可以帮忙解决吗?

最佳答案

有两点,

  • 为什么使用 @OnDelete当您使用 CascadeType.ALL@oneToMany ? CascadeType.ALL删除父实体时将删除子实体。
  • @OnDelete主要用于 @ManyToOne 的子实体否则。

  • 尝试任何选项并检查。

    关于java - 从onetomany hibernate 删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34831438/

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