我有两个具有一个任意关系的表
类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();
有人能帮忙解决吗?
有两件,
>
在@OneTomany
中使用CascadeType.All
时,为什么要使用@OnDelete
?CascadeType.All
将在删除父实体时删除子实体。
@ondelete
主要用于具有@ManyToOne
的子实体中。
尝试使用任何选项并检查。
错误消息非常清楚:存在对您试图删除的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建议的 好!现在,我创建了一个包含两个电话号码的,并将其正确保存在数据库中。这将创建以下内容: 学生 学生电话 电话 问题来了。如