@ManyToMany 参照整合性制約違反 ON DELETION
私はこの多対多の関係を得ました
@ManyToMany(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER)
@JoinTable(
name="tbl_settings_employees",
joinColumns = @JoinColumn(name = "id"),
inverseJoinColumns = @JoinColumn( name = "employee_id")
)
private Set<Employee> employeeSet;
これにより、プライマリ オブジェクトを削除できません。つまり、私の場合、データベースから従業員を削除できません。
この例では、user テーブル、settings テーブル、settings_edit_employee_set テーブル、employee テーブルの 4 つのテーブルを取得しました。
これらはテーブルと関係です:
|---------| |----------------------------|
| tbl_user| | tbl_settings |
| --------| | ---------------------------|
| Id (PK) | | Id (PK)| user_id (PK ref tbl_user)
|---------| |----------------------------|
| 1 | | 1 | 1 |
| 2 | | 2 | 2 |
| 3 | | 1 | 2 |
| 4 | | 2 | 1 |
| etc | |etc |etc |
|---------| |----------------------------|
|-------------------------------|
| tbl_settings_employees (pk=composite)
| ------------------------------|
| Id (PK ref tbl_settings) |
| | Employee_ID(PK ref tbl_employee)
|-------------------------------|
| 1 | 150 |
| 1 | 149 |
| 2 | 150 |
| 2 | 151 |
| etc | etc |
|-------------------------------|
|-------------|
| tbl_employee|
| ------------|
| Id PK |
|-------------|
| 149 |
| 150 |
| 151 |
| etc |
|-------------|
短い:
データベースからオブジェクトを削除したいのですが、今はできません。参照整合性制約違反の例外が発生するためです。
org.h2.jdbc.JdbcSQLException: Referential integrity constraint violation:
"FKE5EF0384FB556B15: PUBLIC.TBL_SETTINGS FOREIGN KEY(EMPLOYEE_EMPLOYEE_ID) REFERENCES
PUBLIC.TBL_EMPLOYEE(EMPLOYEE_ID) (2)"; SQL statement:
delete from tbl_employee where bsn='234234234' [23503-166]