Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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
Java 实体中的列表对象返回到以前的状态,尽管已清除它_Java_Spring_Hibernate_Spring Boot - Fatal编程技术网

Java 实体中的列表对象返回到以前的状态,尽管已清除它

Java 实体中的列表对象返回到以前的状态,尽管已清除它,java,spring,hibernate,spring-boot,Java,Spring,Hibernate,Spring Boot,我有一个实体“城市”,其对象如下所示: @ManyToMany(mappedBy = "building", cascade = CascadeType.REMOVE) @LazyCollection(LazyCollectionOption.FALSE) @SortComparator(DocumentSelectionComparator.class) @OrderBy("id") private List<DocumentSelection> house; //get set

我有一个实体“城市”,其对象如下所示:

@ManyToMany(mappedBy = "building", cascade = CascadeType.REMOVE)
@LazyCollection(LazyCollectionOption.FALSE)
@SortComparator(DocumentSelectionComparator.class)
@OrderBy("id")
private List<DocumentSelection> house;
//get set methods..
我认为它不起作用,因为实体在其他地方被引用,因此重写了更改。。大概如果是这样,我该如何改变这一点。我真的需要清除那个物体


感谢您的帮助

我假设您的关系是双向的(我可以从mappedBy中看出),在这种情况下,要清除列表,您尝试终止关系,并且要执行此操作,您需要从拥有实体方而不是非拥有实体方执行

与mappedBy的关系的一侧是非Wonning实体,因此您需要从DocumentSelection一侧删除该关系


为此,您需要遍历列表,然后从该列表中删除当前对象。

您可以使用孤立删除功能

@ManyToMany(mappedBy = "building", cascade = CascadeType.REMOVE, orphanRemoval = true)
然后打电话

city.getHouse().clear()
cityRepository.save(city)
city.getHouse().clear()
cityRepository.save(city)