0

我有 2 桌比萨饼和配料,

   class pizza{
...
    @ManyToMany(targetEntity = com.pizzastudyds.db.bean.Topping.class, fetch = FetchType.EAGER)
        @JoinTable(name = "PIZZATOPPING", joinColumns = @JoinColumn(name = "PIZZAID"), inverseJoinColumns = @JoinColumn(name = "TOPPINGID"))
        public Set<Topping> getToppings() {
            return toppings;
        }
...
    } 

class toppings{
@ManyToMany(mappedBy = "toppings", targetEntity = com.pizzastudyds.db.bean.Pizza.class)
    public Set<Pizza> getPizzas() {
        return pizzas;
    }
}

当我为披萨定义浇头时,这两个类有多对多的关系。然后尝试删除我可以这样做的比萨,但是当我删除顶部对象时,以及顶部和比萨之间是否存在关系。那么我无法删除顶部并获得约束违规的异常。

无论关系如何,我都想分别删除披萨和浇头;我想更新连接表以及从双方删除。我怎样才能做到这一点?

实际上我想要的是分别删除比萨饼和浇头,即;就像我删除披萨一样,当我删除顶部时,它会被删除并更新连接表,它会被删除,更新连接表中的关系。我并不是说如果我删除了浇头,披萨就会被删除,或者反之亦然。

4

1 回答 1

0
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)

在两边加上这个。我希望这能解决你的问题。

于 2012-05-24T16:04:26.150 回答