Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 无法通过条件API删除详细记录_Jpa_Spring Data_Spring Data Jpa - Fatal编程技术网

Jpa 无法通过条件API删除详细记录

Jpa 无法通过条件API删除详细记录,jpa,spring-data,spring-data-jpa,Jpa,Spring Data,Spring Data Jpa,我的web应用程序是基于Spring、Spring数据、JPA(Hibernate)和MS SQL server构建的。我有两个类/表(主类和详细类)。以下是它们的关联方式: Detail: @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "master") private Master master; Master: @OneToMany(mappedBy = "master", fetch = FetchType.LAZY,

我的web应用程序是基于Spring、Spring数据、JPA(Hibernate)和MS SQL server构建的。我有两个类/表(主类和详细类)。以下是它们的关联方式:

Detail:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "master")
private Master master; 

Master:

@OneToMany(mappedBy = "master", fetch = FetchType.LAZY,cascade = {CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE}, orphanRemoval = true)  
private List<Detail> details; 
我理解这个错误的本质。该怎么解决?上面的映射有什么错误吗


我无法重建数据库。该应用程序已在生产中。如果可以,我希望避免对数据库进行任何更改(如alter table…)。

这不是架构问题,而是条件删除不会级联

因此,您只有两种选择:

  • 查询所有要删除的主控形状,并利用“细节上的级联”一个接一个地迭代删除

  • 执行2个条件删除:第一个在细节上,第二个在主控上

  • (代表问题作者张贴)

    无论谁来到这个线程,这里是如何实现我的最终解决方案

  • 我遵循了Michele建议的“查询所有要删除的主控”。这是一个收藏

  • repository.delete(_集合)


  • 谢谢你,米歇尔!
    The DELETE statement conflicted with the REFERENCE constraint "FK_t7dg2y38t1ddm1lrq94cnpk3x". The conflict occurred in database "mydatabase", table "dbo.Detail", column 'master'.