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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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



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



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

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

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

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

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

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

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

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

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

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

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

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

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



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


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