Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate и Timestamp в MssqlServer . / 4 сообщений из 4, страница 1 из 1
22.06.2005, 17:56
    #33129712
Jericho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate и Timestamp в MssqlServer .
День добрый всем!

Изучаю Hibernate не так давно и, может не заметил в документации,
но не нашел ответа на вопрос -может ли Hibernate определять что строка в таблице изменилась при помощи колонки с типом Timestamp (работаю на MS SqlServer-е.)
Т.е . можно ли проверять версионность версионность записи по колонке с типом Tiemstamp в Hibernate ?

Netdigitally yours Jericho
...
Рейтинг: 0 / 0
22.06.2005, 18:19
    #33129779
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate и Timestamp в MssqlServer .
угу, может - см. документацию на предмет optimistic locking
...
Рейтинг: 0 / 0
25.06.2005, 15:56
    #33134802
Jericho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate и Timestamp в MssqlServer .
Привет!

funikovyuriугу, может - см. документацию на предмет optimistic locking

Может я невнимательно читаю но плз. ткни меня в те строчки в буке "Hibernate in action" или HibernateReference 2.1.7 или 3.0.2 где это четко сказано. В той главе что ты посоветовал (как я понял это глава Optimisitc concurrency control) сказано только следующее

Код: plaintext
1.
Version checking uses version numbers, or timestamps
но что такое timestamps (просто дата+время типа оракловго или спец тип данных Tiemstamp в MSSqlServer-е нигде не говорится.)

Поясни по подробнее плз. как использовать тип данных Timestamp (не дата+время) MSSqlServer-a для реализации оптимистической блокировки в Hibernate?

Netdigitally yours Jericho
...
Рейтинг: 0 / 0
27.06.2005, 11:28
    #33135806
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate и Timestamp в MssqlServer .
timestamp - это поле таблицы, назначение которого хранить версии записей этой таблицы

т.е. значение этого поля для определенной записи меняется при модификации этой записи. hibernate или многие другие средства доступа к БД используют эти поля при реализации оптимистической блокировки.

Оптимистическое блокирование - это такая стратегия обеспечения согласованности данных (другими словами - это способ реализации транзакций, при котором блокирование изменяемых данных происходит только в момент фиксации изменений в БД)

Используется это так
1) клиент забирает нужные ему данные с БД
2) клиент работает с ними внося какие-то изменения
3) клиент фиксирует изменения в БД

3й этап состоит из открытия транзакции в БД, отправки туда запросов на модификацию данных используя при этом информацию о версиях записей и наконец, отправка команды commit

использование же версии данных означает что вместо обычных команд типа
update <> set ... where id=:id используется команды update <> set ... where id=:id and timestamp_col = :last_timestamp. при этом если под такой update не попадет ни одна запись, то такая ситуация трактуется как попытка изменения записи которая уже была изменения пока мы находились на 2м этапе. В этом случае транзакция обычно откатывается.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate и Timestamp в MssqlServer . / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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