powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, работа с Session
25 сообщений из 156, страница 5 из 7
Hibernate, работа с Session
    #37614670
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я читал, читал тему и нипойму в чем проблема.

стартуем транзакцию.

делаем че хотим, при этом флушим в бд после добавлений-удалений, так как транзакция НЕ ЗАКОМИЧЕНА дургие конекты-юзеры не увидят наших изменений. Если юзер передумает, то откатываем транзакцию и все.

или у вас сессии короче чем ваша длиииная бизнес транзакция?
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614672
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
надо подумать :)
В БД не сбросил, но запросы хотишь :)
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614675
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slipperyв смысле, что он будет искать в кеше, будет ли он искать в кеше и как он будет это делать?Ну так это обычный HQL запрос. Работает так же, как я описал выше:
1. Идет запрос к БД, формируется список полученных объектов
2. Объекты мерджатся в сессию.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614676
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kuznetsov,
да, в веб сессия хибера и транзакция только в рамках запроса HTTP-реквеста.
У нас :)) несколько реквестов на бизнес транз.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614677
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey KuznetsovЧто-то я читал, читал тему и нипойму в чем проблема.
стартуем транзакцию.
делаем че хотим, при этом флушим в бд после добавлений-удалений, так как транзакция НЕ ЗАКОМИЧЕНА дургие конекты-юзеры не увидят наших изменений. Если юзер передумает, то откатываем транзакцию и все.
или у вас сессии короче чем ваша длиииная бизнес транзакция?Это классическая длинная транзакция со своими плюсами (простоа реализации) и минусами (абсолютная немасштабируеомсть). Подходит это автору или нет - вопрос к нему.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614678
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenom,
я не понял
- есть класс А изменённый в хибере, но не сброшенный в БД.
Что произойдёт?
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614680
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хибер сравнит метку версии и ...
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614681
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123svenom,
я не понял
- есть класс А изменённый в хибере, но не сброшенный в БД.
Что произойдёт?Что произойдет при каком действии?
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614682
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kuznetsov,
теория там
http://www.sql.ru/forum/actualthread.aspx?tid=909575&pg=1
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614684
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenom,
если знаешь - ответь.
Я не знаю спросил.
В RTFM? :)
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614685
slippery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svenomslipperyв смысле, что он будет искать в кеше, будет ли он искать в кеше и как он будет это делать?Ну так это обычный HQL запрос. Работает так же, как я описал выше:
1. Идет запрос к БД, формируется список полученных объектов
2. Объекты мерджатся в сессию.

блин, ну вот почему он не реализовали при мержде объектов, что если в сессии объект с таким id со статусом "удалить", то чтоб он не попадал в выборку, по моему же логично было бы, разе нет? и сделать 2 варианта запросов, чтоб в 1 попадал, а во втором нет.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614687
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123svenom,
я не понял
- есть класс А изменённый в хибере, но не сброшенный в БД.
Что произойдёт?Что произойдет при каком действии?
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614690
slippery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svenomAlexey KuznetsovЧто-то я читал, читал тему и нипойму в чем проблема.
стартуем транзакцию.
делаем че хотим, при этом флушим в бд после добавлений-удалений, так как транзакция НЕ ЗАКОМИЧЕНА дургие конекты-юзеры не увидят наших изменений. Если юзер передумает, то откатываем транзакцию и все.
или у вас сессии короче чем ваша длиииная бизнес транзакция?Это классическая длинная транзакция со своими плюсами (простоа реализации) и минусами (абсолютная немасштабируеомсть). Подходит это автору или нет - вопрос к нему.

Классическая длинная транзакция не вариант как мне кажется, потому, что параллельно в веб приложении таких транзакций может быть открыто 1000 и более и открыты они могут быть на часы, насколько я понимаю это неимоверная нагрузка на СУБД так же и на память самого сервера. Если я ошибаюсь и у кого-то есть какие-нибудь сведения или информация по этому поводу с огромным удовольствием выслушаю. Но я всегда слышал, и где-то читал, что делать так в веб приложении в котором могут параллельно работать тысячи или десятки тысяч пользователей, это значит "убить" проект. Хотелось бы мне ошибаться.....
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614691
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slipperysvenomпропущено...
Это классическая длинная транзакция со своими плюсами (простоа реализации) и минусами (абсолютная немасштабируеомсть). Подходит это автору или нет - вопрос к нему.

Классическая длинная транзакция не вариант как мне кажется, потому, что параллельно в веб приложении таких транзакций может быть открыто 1000 и более и открыты они могут быть на часы, насколько я понимаю это неимоверная нагрузка на СУБД так же и на память самого сервера. Если я ошибаюсь и у кого-то есть какие-нибудь сведения или информация по этому поводу с огромным удовольствием выслушаю. Но я всегда слышал, и где-то читал, что делать так в веб приложении в котором могут параллельно работать тысячи или десятки тысяч пользователей, это значит "убить" проект. Хотелось бы мне ошибаться.....Все верно. На каждую такую транзакцию нужен отдельный коннекшн со всеми вытекающими.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614693
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slippery,
если хибер не умеет, то очень просто - он не СУБД и умеет в себе копаться только ограниченно .
Т.е. ломай DDL командами сколько угодно, но не перезапрашивай .
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614694
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slipperysvenomпропущено...
Ну так это обычный HQL запрос. Работает так же, как я описал выше:
1. Идет запрос к БД, формируется список полученных объектов
2. Объекты мерджатся в сессию.
блин, ну вот почему он не реализовали при мержде объектов, что если в сессии объект с таким id со статусом "удалить", то чтоб он не попадал в выборку, по моему же логично было бы, разе нет? и сделать 2 варианта запросов, чтоб в 1 попадал, а во втором нет.
Ну опять таки - все корректно отработает, как вы ожидаете, если вы сделаете flush() перед исполнением запроса. Вы flush() делать не хотите, Хибер тут ни при чем. Вы у него попросили вернуть список определнных объектов - он вам их и вернул.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614697
slippery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svenom,

вопрос чуть не по теме, а чем

session.createQuery от session.find() глобально отличается?
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614701
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614704
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slipperysession.createQuery от session.find() глобально отличается?Метода find либо нет, либо он диприкейтед
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614707
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenom,
Хибер то ни при чём я согласен. Веб-ТЗ при чём. И программисты, которые ленивые стали.
IDE им подавай и т.д.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614709
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
в общем, автор! Тайм-аут и объясни заказчику.
Либо долго писать чтобы хибер был импотентом прослойкой до БД.
Либо менять ТЗ уменьшив УНИВЕРСАЛЬНОСТЬ как зло для IT.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614713
slippery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Petro123,
в общем, автор! Тайм-аут и объясни заказчику.
Либо долго писать чтобы хибер был импотентом прослойкой до БД.
Либо менять ТЗ уменьшив УНИВЕРСАЛЬНОСТЬ как зло для IT.

по глобальной концепции уменьшать универсальность нельзя, поэтому видимо "долго или нудно писать руками" вообщем-то я уже смирился с этой мыслю) единственное не хотелось бы написать криво, так как подобное раньше мне делать не приходилось, потому и спрашивал какие есть подходы, варианты, паттерны, фрэймворки.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614730
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slippery,
ok
универсальность проще не на тонком клиенте и не на веб. Но есть минусы!
В параллельной теме тоже ищу сабж.
Удачи!
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614735
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slipperyДобрый день, есть задача:
Открываю сессию с hibernate, начинаю транзакцию, создаю 2 объекта и делаю им save.

slippery, как вы привели ТЗ в соседнем топике, так там все нормально, грамотно и просто.

Про HQL это заказчик так сказал или вы сами?

View не должен работать с СУБД. Между ними еще есть слой DAO и Service и не забываем про модель. Т.е. ваш пользователь в своих вкладках работает с моделью, при необходимости подгружая данные из СУБД. Вы реализуете все операции типа delete/insert в памяти (можно в сервисах, если сделать цикл жизни не singleton, а как у сессии), а далее при запросе от пользователя просто сохраняете все изменения в БД.

Вкладки работают только с сервисами и моделями, что и позволяет нам утвреждать, что они ничего друг от друге не знают.

Собственно, я похожую задачу решал, только в desktop приложении, что для вас совершенно не важно.
...
Рейтинг: 0 / 0
Hibernate, работа с Session
    #37614982
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь понял.

Тогда остается еще такое решение: делаете маркерное поле и выборки делаете с учетом маркерного поля, что бы другие коннекты не тащили "логически незакомиченные" данные.

Что бы упростить написание запросов, таблицы можно вьюхами обернуть, которые автоматом отфильтруют данные.
Я один раз похожее решение использовал: флажок "IsDeleted" который приходилось постоянно иметь ввиду при написании запросов, муторно, но другого выхода думаю нету.
...
Рейтинг: 0 / 0
25 сообщений из 156, страница 5 из 7
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, работа с Session
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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