|
|
|
hibernate child parent
|
|||
|---|---|---|---|
|
#18+
Есть две сущности (упрощёны для понимания) Код: java 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. Вполне очевидно и понятно, что если я заполню поля id, title и НЕ заполню поле eventLecture у сущности EventEntity и потом скажу merge\updateу меня случится апдейт всех child'ов т.е. И в поле event_id проставляться NULL. Мой вопрос в следующем: Можно ли какими либо аннотациями(или еще какими то способами) запретить обновлять связанную сущность EventLectureEntity , но разрешить INSERT'ить и SELECT'ить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2016, 02:30 |
|
||
|
hibernate child parent
|
|||
|---|---|---|---|
|
#18+
TepKuH, из декларативного принуждения ничего не память приходит, но можно отлавливать в сущности событие beforeUpdate и абортироваться в нем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2016, 08:15 |
|
||
|
hibernate child parent
|
|||
|---|---|---|---|
|
#18+
Мне тоже умного ничего не приходит. Кроме как: - В контроллер приходит сущность EventEntity с рядом не заполненных полей. - Контроллер дальше прокидывает в сервис, который вытаскивает из базы по ID эту EventEntity - Котроллер обновляет поля сущности которую он вытащил и обновляет поля которые не NULL. Но проблема в том, что у меня у этой сущность EventEntity около 40 полей. (это так и должно быть, большинство полей текстовые) и только штук 10 связаны со простыми справочниками. Это так и устать можно заполнять поля :) А разработчики люди ленивые :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2016, 20:57 |
|
||
|
hibernate child parent
|
|||
|---|---|---|---|
|
#18+
TepKuH, самый простой ну и самый наверное расточительный это отиметь EventLectureEntity через interceptor или что там еще есть preupdateeventlistener и пробрасывать в штатном режиме EventLectureEntity объекты на обновление , а так как реализация будет возвращать false обновления не должно быть.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2016, 22:51 |
|
||
|
hibernate child parent
|
|||
|---|---|---|---|
|
#18+
1) поле EventLectureEntity.eventId - лишнее. Всё, что нужно, уже описано в аннотации Код: java 1. 2) в аннотации @ManyToOne следует использовать атрибут "cascade", либо хибернейтовский @Cascade Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 13:57 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39217046&tid=2124151]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 386ms |

| 0 / 0 |
