Обнаружение гибернации, если объект является временным с одновременным постоянством - PullRequest
3 голосов
/ 06 января 2012

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

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

Как я могу сделать это потокобезопасным способом?

Спасибо.

public void updateIfNotNew(PersistentObject a){
//if another object is in the process of saving....this update will not get persisted
    if (a.id!=null){  
        session.update(a);
     }
}

1 Ответ

8 голосов
/ 06 января 2012

Я рекомендую вам поискать интерфейс org.hibernate.Session, там вы можете найти метод , содержащий , этот метод будет искать, если данный объект связан с этим сеансом (постоянный), если нет, то не ' Это означает, что он отключен, потому что он может быть связан с другим сеансом, если таковой имеется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...