如果我創建一個客戶和控制器,然後將我的控制器與客戶相關聯,它可以很好地保存。JPA多對多級聯問題
如果我然後刪除我的控制器它不會刪除它們之間的關係。 當我加載客戶時,這會導致EntityNotFoundException。
javax.persistence.EntityNotFoundException: Unable to find Controller with id 22
我想知道如何映射這個,所以當一個控制器被刪除的關係也被刪除。
數據庫表
- 客戶
- 控制器
- customer_controllers - 映射表。
控制器的ID沒有從customer_controllers映射表中刪除。
@Entity
public class Customer implements Serializable{
private Integer id;
private Set<Controller> controllers;
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@ManyToMany(cascade={CascadeType.ALL})
public Set<Controller> getControllers()
{
return controllers;
}
public void setControllers(Set<Controller> controllers)
{
this.controllers = controllers;
}
}
@Entity
public class Controller implements Serializable{
private Integer id;
private String name;
private String abbreviation;
@Id
@GeneratedValue
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getAbbreviation()
{
return abbreviation;
}
public void setAbbreviation(String abbreviation)
{
this.abbreviation = abbreviation;
}
}
我希望自己不必映射它兩種方式,但它是有道理的,我需要。謝謝! – ScArcher2 2009-06-05 15:30:24