Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > hibernate, db2 - select for update


Автор: Vladus 18.10.2010, 21:46
Всем доброго времени суток.

Есть необходимость лочить базу, делаю это таким способом
Код

getSession().get(entityClass, 1L, LockMode.UPGRADE)


Все замечатеьно работает для Oracle, MySql (установив предварительно ransaction_isolation=READ-COMMITTED в my.ini), PostgreSQL но не для db2.

Во первых, у них подходящий режим изоляции - Read Stability (т.е. <property name="hibernate.connection.isolation">4</property>)

А во-вторых, хибер генерит вот такой код
Код

    select
        id
    from
        global_lock
    where
        id =? for read only with rs

хотя должен 
Код

    select
        id
    from
        global_lock
    where
        id =? for update with rs


Кто сталкивался с подобным? Есть ли способы порешать это кроме использования нейтив sql ?

Автор: carper 19.10.2010, 08:29
Кажется это ваш случай:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1512
status = OPEN :(

=> native sql наш друг.

Автор: Vladus 19.10.2010, 12:53
carper,
да, похоже так и есть :(
спасибо за помощь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)