Обновление атомарной записи NHibernate - PullRequest
1 голос
/ 05 декабря 2011

Каков наилучший способ (если таковой имеется) для атомарной записи обновления из таблицы без открытия транзакции?Я имею в виду что-то вроде

 UPDATE Table_1 SET Value=Value+@Increment WHERE Id=@Id

Возможно, это возможно с помощью HQL или плоскости SQL из NHibernate ...

Поддерживает ли последняя версия NHibernate обновление через HQL ?!Как насчет этого заявления?

  UPDATE Table_1 SET Value=Value+@Increment, @Result=1
        WHERE Id=@Id AND Value+@Increment<=@MaxLimit;SELECT @Result

1 Ответ

1 голос
/ 05 декабря 2011

HQL:

session.CreateQuery("UPDATE Entity1 SET Value=Value + :Increment WHERE Id=:Id")
    .SetParameter("Increment", 10)
    .SetParameter("Id", 5)
    .ExecuteUpdate()

SQL:

session.CreateSqlQuery("UPDATE Table_1 SET Value=Value + :Increment WHERE Id=:Id")
    .SetParameter("Increment", 10)
    .SetParameter("Id", 5)
    .ExecuteUpdate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...