|
|
|
hibernate и cascade delete
|
|||
|---|---|---|---|
|
#18+
Есть объект А, который посредством many-to-one ссылается на объект Б, cascade="delete". И что мы наблюдаем? Сгенерированный schemaexport.sql не содержит on delete cascade, а если попытаться удалить А, то и Б, на которого он ссылается, тоже удаляется! Это прямо противоположное поведение тому, какого я ожидал и которое мне надо. Отсюда вопросы: 1. я прав? Хочется верить, что меня проглючило ;) 2. как сделать то что нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 19:32 |
|
||
|
hibernate и cascade delete
|
|||
|---|---|---|---|
|
#18+
У каждой ассоциации есть два конца. Если ты на одном из них указываеш cascade="delete",то это означает, что удаление будет автоматически распространятся в направлении другого конца.Что собственно и происходит, когда ты удаляеш объект А, это влечет автоматическое удаление В. Нужно в объекте В сделать ссылку на А типа one-to-may, и уже здесь указать cascade="delete". Например <set name="aObjects" inverse="true" cascade="delete"> <key column="B_ID"></key> <one-to-many class="A"/> </set> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 10:50 |
|
||
|
hibernate и cascade delete
|
|||
|---|---|---|---|
|
#18+
В том всё и дело, что объект Б ничего не знает и знать не может об А. Ручное добавление в schemaexport в ограничения на связь "on delete cascade" решает проблему. Но это не то, что нужно: хочется, чтобы всё генерировалось сразу правильно. Hibernate - такая мощь. Не может быть, чтобы такую простую и часто встречающуюся проблему нельзя было красиво и просто решить. :\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2005, 17:27 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=785&tid=2151618]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
17ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 262ms |

| 0 / 0 |
