Блокировка NHibernate и вновь созданных записей

В Windows для меня это работает:

virtualenv --python=c:\Python25\python.exe envname

без python.exe Я получил WindowsError: [Error 5] Access is denied У меня установлен Python2.7.1 с virtualenv 1.6.1, и мне нужен python 2.5.2.

-1
задан Peter Boško 20 January 2019 в 17:43
поделиться

1 ответ

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

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

  • Вы можете перехватить УНИКАЛЬНОЕ нарушение и иметь этот процесс повторите попытку. На втором шаге он найдет запись, зафиксированную другой транзакцией.

  • Вы можете использовать SERIALIZABLE уровень изоляции транзакции. Это самый безопасный уровень изоляции. Если я правильно думаю, он должен убедиться, что когда какой-либо процесс попытается прочитать существующую запись, он либо не получит ни записи, ни существующей записи, ИЛИ, если какая-либо другая открытая транзакция уже искала ту же запись, он заблокирует и будет ждать, пока другая транзакция завершена.

0
ответ дан Oskar Berggren 20 January 2019 в 17:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: