私は顧客とコントローラを作成して、それを保存した顧客に私のコントローラを関連付けます。JPA多対多カスケード問題
コントローラを削除しても、コントローラ間の関係は削除されません。 これにより、Customerをロードするときに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