Уважаемые коллеги!
Скажите пожалуйста можно ли в NHibernate выполнить такой запрос:
select obj from TableOne as obj where Code=:pCode for update.
Очень нужен For Update но NHibernate ругается на него.
Заранее всем благодарен.
Здравствуйте, demonv, Вы писали:
D>Уважаемые коллеги! D>Скажите пожалуйста можно ли в NHibernate выполнить такой запрос: D>select obj from TableOne as obj where Code=:pCode for update. D>Очень нужен For Update но NHibernate ругается на него. D>Заранее всем благодарен.
А эта... извиняюсь, а че это такое? "NHibernate"...
Здравствуйте, demonv, Вы писали:
D>Уважаемые коллеги! D>Скажите пожалуйста можно ли в NHibernate выполнить такой запрос: D>select obj from TableOne as obj where Code=:pCode for update. D>Очень нужен For Update но NHibernate ругается на него. D>Заранее всем благодарен.
Насколько я знаю выделенное не возможно в NHibernat-e
это диалектнозависимое, а NH и его HQL являются
диалектно независимыми.
ps:я так догадываюсь что это из оракла взято "for update" ?
Не могли бы вы пояснить для чего сия конструкция и зачем он вам нужна?
может есть иное,аналогичное этому решение..
Здравствуйте, demonv, Вы писали:
D>Уважаемые коллеги! D>Скажите пожалуйста можно ли в NHibernate выполнить такой запрос: D>select obj from TableOne as obj where Code=:pCode for update. D>Очень нужен For Update но NHibernate ругается на него. D>Заранее всем благодарен.
Посмотри на IQuery.SetLockMode(). Тебе нужен LockMode.Upgrade, вроде.
Re[2]: Помогите пожалуйста с NHIbernate
От:
Аноним
Дата:
23.01.07 07:31
Оценка:
Встроенный язык запрсов NHibernate не поддерживет for update
Для выполения такой операции необходимо вызывать
метод Get(System.Type clazz, object id, NHibernate.LockMode lockMode)
с соответствующим lockMode.
То есть сначала получаешь id объекта запросом, потом вызываешь
вышеуказаный метод.
Но я лично не рекомендую пользоваться такой методикой,
предпочитаю использовать оптимистическую блокировку.
"Нужно делать так как нужно, а так как не нужно делать не нужно" Винни-Пух