|
|
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Есть bidirectional 2 сущности связь 1-* Код: java 1. 2. 3. 4. 5. 6. 7. 8. Ну и соответственно 2-я энтити - ExcFlow Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Теперь при удалении route-etity я получаю ошибку что мол есть внешние ключи на таблицу ExcFlow. 1) Почему, ведь я же указал cascade = CascadeType.REMOVE? 2) Почему когда я вижу сгенерированный код DDL код таблицы ExcFlow то не указано в ней каскадного удаления, а просто ON UPDATE NO ACTION ON DELETE NO ACTION ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Хотя если явно переопределить ON DELETE CASCADE все работает на ура. Enviroment: JPA 2.0 /Hibernate / JBoss 7.1.3 Что я делаю не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:36:45 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
mvn3Теперь при удалении route-etity я получаю ошибку что мол есть внешние ключи на таблицу ExcFlow. 1) Почему, ведь я же указал cascade = CascadeType.REMOVE? 2) Почему когда я вижу сгенерированный код DDL код таблицы ExcFlow то не указано в ней каскадного удаления, а просто ON UPDATE NO 1) Все правильно, Hibernate пытается удалить ExcFlow, а на нее есть какие-то ссылки с других, вот и не может. Ищите, кто ссылается на ExcFlow. 2) Потому что аннотация @OneToMany не влияет на генерацию схемы БД. А casace = CascadeType.REMOVE означает, что зависимые сущности будут удалены средствами провайдера JPA. Если действительно нужно удаление средствами БД, можно повесить аннотацию Hibernate @OnDelete(action=CASCADE). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:42:17 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
Мужик1) Все правильно, Hibernate пытается удалить ExcFlow, а на нее есть какие-то ссылки с других, вот и не может. Ищите, кто ссылается на ExcFlow. Спасибо за ответ, но на таблицу ExcFlow никто и ничто не ссылается, она одиночка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:51:26 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
mvn3Теперь при удалении route-etity я получаю ошибку что мол есть внешние ключи на таблицу ExcFlow. mvn3Спасибо за ответ, но на таблицу ExcFlow никто и ничто не ссылается, она одиночка Так все-таки на какую таблицу внешние ключи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:55:31 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
mvn3, Стратегия @OnDelete пока не поддерживается, но есть аннотация @Cascade, ей и надо пометить инверсную сторону (которая mappedby). Атрибут cascade в аннотации @OneToMany и @ManyToOne на инверсной стороне не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 17:57:52 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
Мужикmvn3Теперь при удалении route-etity я получаю ошибку что мол есть внешние ключи на таблицу ExcFlow. mvn3Спасибо за ответ, но на таблицу ExcFlow никто и ничто не ссылается, она одиночка Так все-таки на какую таблицу внешние ключи? Да сори,я был не прав по поводу одиночки. С точки зрения DDL таблицы выглядят вот так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Только беда в том что я не могу теперь удалить ни одну строку, в каждой таблице. Пишет что есть внешние ключи и пипец ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 18:14:32 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
mvn3 Код: sql 1. cfid_route_path - таблица? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 18:27:11 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
Petro123mvn3 Код: sql 1. cfid_route_path - таблица? да это таблица route_path Просто я для этого поста я удалил все приставки cfid_ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 22:52:58 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
ivanramvn3, Стратегия @OnDelete пока не поддерживается, но есть аннотация @Cascade, ей и надо пометить инверсную сторону (которая mappedby). Атрибут cascade в аннотации @OneToMany и @ManyToOne на инверсной стороне не работает Атрибут cascade отлично работает на любой стороне в Hibernate 4.2.6, JBoss 7.2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 14:59:27 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 15:51:10 |
|
||
|
JPA/Hibernate почему не работает каскадное удаление?
|
|||
|---|---|---|---|
|
#18+
Petro123Мужик, а это? Там речь про HQL. Насколько я понял, автор удаляет сущность с помощью EntityManager.remove. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 17:24:05 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38414743&tid=2128488]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
210ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 494ms |

| 0 / 0 |
