ManyToOne каскад не работает - PullRequest
       2

ManyToOne каскад не работает

2 голосов
/ 14 сентября 2011

В Play Framework! Я определил две модели:

С одной стороны,

@Entity
public class DashboardPosition extends Model  {
    public int orderId;

    @ManyToOne(cascade=CascadeType.ALL)
    public Dashboard dashboard;
}

А с другой стороны,

@Entity
public class Dashboard extends Model  {
    ...
}

По какой-то причине при удалении панели мониторинга с помощью «dashboard.delete ()» я получаю сообщение об ошибке со следующим журналом.

12:07:20,190 DEBUG ~ delete from Dashboard where id=?
12:07:20,204 WARN  ~ SQL Error: 23003, SQLState: 23003
12:07:20,204 ERROR ~ Referential integrity constraint violation: "FKF7C253BD5A49DA96: PUBLIC.DASHBOARDPOSITION FOREIGN KEY(DASHBOARD_ID) REFERENCES PUBLIC.DASHBOARD(ID)"; SQL statement:
delete from Dashboard where id=? [23003-149]
12:07:20,204 WARN  ~ SQL Error: 23003, SQLState: 23003
12:07:20,204 ERROR ~ Referential integrity constraint violation: "FKF7C253BD5A49DA96: PUBLIC.DASHBOARDPOSITION FOREIGN KEY(DASHBOARD_ID) REFERENCES PUBLIC.DASHBOARD(ID)"; SQL statement:
delete from Dashboard where id=? [23003-149]

Что заставляет меня думать, что каскад не работает в моем случае. Любая подсказка, почему это может происходить / как отладить эту проблему?

1 Ответ

4 голосов
/ 14 сентября 2011

Каскад находится на неправильной стороне ассоциации.

Вы хотите удалить все позиции панели при удалении панели. Но вы не хотите, чтобы панель была удалена при удалении одной из ее позиций. Таким образом, каскад должен быть установлен на аннотацию @OneToMany в поле positions на приборной панели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...