2013-05-29 1 views
0

У меня есть таблица, созданная в мире Hibernate (java), который также используется системой без гибернации (.NET, но может быть любым). Hibernate использует столбец version для целей транзакции и не работает (обнаруживает строку как в состоянии «переходный»), когда столбец равен null.Должно ли для созданной таблицы Hibernate установить столбец версии для некоторого значения при создании строки?

Вопрос ... следует ли игнорировать эту колонку (с точки зрения спящего режима)? или, всегда инициализируется zero (или другим значением)? или ... только что установлен как default 0 в SQL, который создает таблицу? Какова лучшая стратегия для совместного использования этих таблиц, используемых Hibernate?

Заранее благодарен!

ответ

1

Если вы собираетесь делиться таблицами между системами Hibernate и non-Hibernate, настоятельно необходимо, чтобы системы без гибернации увеличивали номер версии каждый раз, когда они изменяли строку. Это связано с тем, что оптимизированные блокировки Hibernate предполагают, что если номер версии не изменился, строка не изменилась.

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

Смежные вопросы