|
|
|
Hibernate @Transactional
|
|||
|---|---|---|---|
|
#18+
если я в одном методе помеченным @Transactional делаю удаление нативным запросом sessionFactory.getCurrentSession().createSQLQuery а вставку через ORM sessionFactory.getCurrentSession().saveOrUpdate(); вслучае роллбека удаление же откатится вместо с ваставкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 08:56 |
|
||
|
Hibernate @Transactional
|
|||
|---|---|---|---|
|
#18+
plain, Да, конечно. Управление транзакции в простейшем случае идёт через JDBC Connection, а он тут через менеджер транзакций привязан и к сессии и к потоку. Только @Transactional это не Hibernate. А ещё так делать плохо, из-за кеширования на обоих уровнях. Удаление нативным запросом не обновит состояние ни в сессии, ни в кеше второго уровня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 09:02 |
|
||
|
Hibernate @Transactional
|
|||
|---|---|---|---|
|
#18+
т.е в случае поллбэка есть возможность что данные которые вбивал через sessionFactory.getCurrentSession().saveOrUpdate(); могут остаться в кэше и могут отображаться если их запросить?(вернет не старое которое откатилось и закэшированное которое тоже роллбекнулось но осталось в кэше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 09:30 |
|
||
|
Hibernate @Transactional
|
|||
|---|---|---|---|
|
#18+
plain, Зачем вы rollback приплели? Проблема будет даже без него. Разве что если вы удаляете данные, которые у вас в ORM вообще не замаплены? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 09:33 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39390783&tid=2123221]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 418ms |

| 0 / 0 |
