代码之家  ›  专栏  ›  技术社区  ›  pepote

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

  •  1
  • pepote  · 技术社区  · 6 年前

    我有一个实体“城市”,其中列出的对象如下:

    @ManyToMany(mappedBy = "building", cascade = CascadeType.REMOVE)
    @LazyCollection(LazyCollectionOption.FALSE)
    @SortComparator(DocumentSelectionComparator.class)
    @OrderBy("id")
    private List<DocumentSelection> house;
    //get set methods..
    

    我现在的问题是,我希望在某个时刻清除对象,但它总是返回到包含数据的前一个状态。我尝试过清除对象并保存实体,但它仍然不起作用。 这就是我所尝试的:

    //1
    city.setHouse(null)
    cityRepository.save(city)
    
    //2
    house.clear();
    city.setHouse(house)
    cityRepository.save(city)
    

    我认为它不起作用,因为实体正被引用到其他地方,从而重写更改。也许吧?如果是的话,我该怎么改变呢?我真的需要清除那个物体。

    谢谢你的帮助

    2 回复  |  直到 6 年前
        1
  •  1
  •   Amer Qarabsa    6 年前

        2
  •  0
  •   Michal    6 年前

    @ManyToMany(mappedBy = "building", cascade = CascadeType.REMOVE, orphanRemoval = true)
    

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