Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate. транзакции и сессии. / 25 сообщений из 30, страница 1 из 2
29.09.2013, 21:01:18
    #38411214
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
Отношусь к транзакции как к атомарной операции, которую можно откатить

к сессии отношусь как к сеансу когда объект подключен в БД и любые изменения в подключенном объекте проростают в бд.

хотелось бы узнать отношение между сессией и транзакцией.

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

а можно как-то открыть транзакцию(в какой-то сессии1) , потом сессию2 например открыть?
...
Рейтинг: 0 / 0
29.09.2013, 23:46:10
    #38411274
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
Можете это рассматривать это следующим образом.
Сессия - множество действий с СУБД в рамках одного коннекшна.
Транзакция - подмножество действий в рамках сессии, с особой ACID семантикой с точки зрения СУБД.

Запустить транзакцию поверх нескольких сессий нельзя.
...
Рейтинг: 0 / 0
30.09.2013, 11:50:27
    #38411561
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
cdtyjv,

спасибо.
...
Рейтинг: 0 / 0
30.09.2013, 12:00:22
    #38411580
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
cdtyjvЗапустить транзакцию поверх нескольких сессий нельзя.
Я бы не был так категоричен. То что в большинстве случаев это не имеет смысла и то что это реализуется через одно место, ещё не значит что это не возможно в принципе.
...
Рейтинг: 0 / 0
30.09.2013, 12:03:30
    #38411589
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
Hibernate Session это реализация паттерна Unit of Work. Чтобы понять принципиальное назначение и практическое использование, стоит ознакомиться с материалами об этом паттерне.
Можно начать отсюда.
http://stackoverflow.com/a/3533245
...
Рейтинг: 0 / 0
30.09.2013, 12:03:45
    #38411590
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
Blazkowicz,

можно немного поподробнее отсюда?
...
Рейтинг: 0 / 0
30.09.2013, 12:04:36
    #38411594
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
Blazkowicz ,

Ок, буду изучать.
...
Рейтинг: 0 / 0
30.09.2013, 12:08:02
    #38411601
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
questionerможно немного поподробнее отсюда?
Откуда "отсюда"? Пользуйтесь цитированием.
...
Рейтинг: 0 / 0
30.09.2013, 12:10:15
    #38411604
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
Blazkowicz,

Ваш коммент со ссылкой на stackOverfow появился одновременно с моей просьбой о подробности. А удалить форум не позволяет.
...
Рейтинг: 0 / 0
30.09.2013, 12:29:26
    #38411639
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
questionerВаш коммент со ссылкой на stackOverfow появился одновременно с моей просьбой о подробности. А удалить форум не позволяет.
Ну, дык воизбежание цитируйте, пожалуйста.
Если вопрос о том как сделать несколько сессий поверх одной транзакции, то достаточно понять что нет никаких этому ограничений.
Сессия напрямую транзакцией не управляет. Это происходит через определенные абстракции, куда при должном желании можно встрять и навязать реализации своё поведение.
Подозреваю что можно даже стандартными средствами через JTA UserTransaction.
...
Рейтинг: 0 / 0
30.09.2013, 13:26:12
    #38411743
Iliyam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
cdtyjvМожете это рассматривать это следующим образом.
Сессия - множество действий с СУБД в рамках одного коннекшна.
Транзакция - подмножество действий в рамках сессии, с особой ACID семантикой с точки зрения СУБД.

Запустить транзакцию поверх нескольких сессий нельзя.

А как же распределенные транзакции? даже я об этом знаю.

BlazkowiczquestionerВаш коммент со ссылкой на stackOverfow появился одновременно с моей просьбой о подробности. А удалить форум не позволяет.
Ну, дык воизбежание цитируйте, пожалуйста.
Если вопрос о том как сделать несколько сессий поверх одной транзакции, то достаточно понять что нет никаких этому ограничений.
Сессия напрямую транзакцией не управляет. Это происходит через определенные абстракции, куда при должном желании можно встрять и навязать реализации своё поведение.
Подозреваю что можно даже стандартными средствами через JTA UserTransaction.

Как-то у вас задом наперед... попробуйте запустить транзакцию, не открывая сессию) Т.е. транзакция поверх сессии (или нескольких сессий).
...
Рейтинг: 0 / 0
30.09.2013, 13:34:57
    #38411753
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
IliyamКак-то у вас задом наперед...

Я, пока ещё, теоретик в проктологии.

Iliyamпопробуйте запустить транзакцию, не открывая сессию) Т.е. транзакция поверх сессии (или нескольких сессий).
Зачем пробовать? Достаточно посмотреть исходники. В них я не нашел никаких препядствий этому. Ткни носом, если я чего-то не вижу.
...
Рейтинг: 0 / 0
30.09.2013, 13:59:00
    #38411815
Iliyam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
BlazkowiczIliyamКак-то у вас задом наперед...

Я, пока ещё, теоретик в проктологии.

Iliyamпопробуйте запустить транзакцию, не открывая сессию) Т.е. транзакция поверх сессии (или нескольких сессий).
Зачем пробовать? Достаточно посмотреть исходники. В них я не нашел никаких препядствий этому. Ткни носом, если я чего-то не вижу.

Так вы в проктологии теоретик или нет? Может и можно, но все равно так делать - это делать через ... короче неправильно.
...
Рейтинг: 0 / 0
30.09.2013, 14:06:05
    #38411826
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
IliyamBlazkowiczЯ, пока ещё, теоретик в проктологии.

Так вы в проктологии теоретик или нет?

Проблемы с чтением?


IliyamМожет и можно, но все равно так делать - это делать через ... короче неправильно.
ОК. Вы перефразировали то что я написал выше.
Какой вы ожидаете реакции перефразирую то что уже написано выше и повторя это?
...
Рейтинг: 0 / 0
30.09.2013, 14:25:21
    #38411865
Iliyam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
Blazkowicz
Проблемы с чтением?

Проблемы с логикой?


BlazkowiczОК. Вы перефразировали то что я написал выше.
Какой вы ожидаете реакции перефразирую то что уже написано выше и повторя это?

Я бы вообще ничего не писал, если б тему создал не начинающий. А здесь ваши упражнения в проктологии (ваша, кстати, аналогия) неуместны.
...
Рейтинг: 0 / 0
30.09.2013, 14:38:15
    #38411885
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
IliyamBlazkowiczПроблемы с чтением?
Проблемы с логикой?
Проблемы? :D



IliyamЯ бы вообще ничего не писал, если б тему создал не начинающий. А здесь ваши упражнения в проктологии (ваша, кстати, аналогия) неуместны.
Окай. Перефразируем. Через JTA можно поиметь несколько сессий на транзакцию без особых заморочек. С JDBC транзакцией будет немного сложнее. Но тоже реально.
...
Рейтинг: 0 / 0
30.09.2013, 14:39:09
    #38411886
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
IliyamЯ бы вообще ничего не писал, если б тему создал не начинающий.
Это кого должно волновать? Я бы вообще ничего не писал, если бы новых тем не создавали. Ваш КО.
...
Рейтинг: 0 / 0
30.09.2013, 15:15:12
    #38411945
Iliyam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
Blazkowicz
Проблемы? :D



BlazkowiczОкай. Перефразируем. Через JTA можно поиметь несколько сессий на транзакцию без особых заморочек. С JDBC транзакцией будет немного сложнее. Но тоже реально.

Вы вообще помните, с чего спор пошел? Какая-то странная непоследовательность от человека, дающего много дельных советов.
Можете не искать, причина уже исчерпана. Я эту писанину пишу, чтобы сказать - начинающему нужны короткие и правильные ответы в общем виде. Вариации он сам узнает, если захочет. Вы с этим согласны, надеюсь?
...
Рейтинг: 0 / 0
30.09.2013, 15:17:44
    #38411947
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
IliyamЯ эту писанину пишу, чтобы сказать - начинающему нужны короткие и правильные ответы в общем виде. Вариации он сам узнает, если захочет. Вы с этим согласны, надеюсь?
Мы тут не только о начинающих заботимся но и собственный кругозор расширяем.
...
Рейтинг: 0 / 0
30.09.2013, 15:48:43
    #38411990
Iliyam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
BlazkowiczМы тут не только о начинающих заботимся но и собственный кругозор расширяем.

По-моему это простые теоретические вопросы. Кроме начинающих кругозор больше ни у кого не расширится. (ну может еще у svenoma что-нибудь расширится :))
...
Рейтинг: 0 / 0
30.09.2013, 15:55:42
    #38412006
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
IliyamПо-моему это простые теоретические вопросы.

Для одних - простые. Для других - нет. Почему бы и не обсудить в очередной раз.
...
Рейтинг: 0 / 0
30.09.2013, 23:51:51
    #38412447
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
BlazkowiczIliyamпопробуйте запустить транзакцию, не открывая сессию) Т.е. транзакция поверх сессии (или нескольких сессий).
Зачем пробовать? Достаточно посмотреть исходники. В них я не нашел никаких препядствий этому. Ткни носом, если я чего-то не вижу.

а если всё-таки попробовать то как ? куда смотреть? что писать?
...
Рейтинг: 0 / 0
01.10.2013, 10:25:32
    #38412637
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
redwhite90а если всё-таки попробовать то как ? куда смотреть? что писать?
Для начала настроить работу хибера через JTA. И управлять транзакцией руками через UserTransaction.
Стартовали транзакцию. Создали сессию. Поработали. Закрыли.
Создали новую сессию. Поработали. Закрыли. Закомитили UserTransaction.

Если этот вариант по какой-то причине не работает, то надо почитать спринговый HibernateTransactionManager. Всё сводится к том что Session сообщает в TransactionManager о том что надо бы закомититься, или откатить, или ещё чего. А Transaction Manager уже может решать, надо оно ему. Или позже коммит вызвать и т.п.

Посмотри реализацию классов JDBCTransaction и JTATransaction в Hibernate.
...
Рейтинг: 0 / 0
01.10.2013, 10:34:50
    #38412657
Iliyam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
redwhite90
а если всё-таки попробовать то как ? куда смотреть? что писать?

спеку по JTA смотри. Мне лень, поэтому поверил Blazkowicz на слово.
...
Рейтинг: 0 / 0
01.10.2013, 11:07:37
    #38412714
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate. транзакции и сессии.
BlazkowiczcdtyjvЗапустить транзакцию поверх нескольких сессий нельзя.
Я бы не был так категоричен. То что в большинстве случаев это не имеет смысла и то что это реализуется через одно место, ещё не значит что это не возможно в принципе.

IliyamBlazkowiczпропущено...

Я, пока ещё, теоретик в проктологии.

пропущено...

Зачем пробовать? Достаточно посмотреть исходники. В них я не нашел никаких препядствий этому. Ткни носом, если я чего-то не вижу.

Так вы в проктологии теоретик или нет? Может и можно, но все равно так делать - это делать через ... короче неправильно.



Вся суть спора. Iliyam, чтение по диагонали - не ваш конек.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate. транзакции и сессии. / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]