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


Автор: magicfly 16.9.2009, 11:55
Добрый день, 
возник такой вопрос:
есть страница на которой расположена форма. При редактировании объекта на онСабмин метода выполняется следующие:
Код

 User user = (User) command;
                if (userRoles != null) {
                    user.getRoles().clear();
                    for (String roleName : userRoles) {
                        user.addRole(roleManager.getRole(roleName));
                    }
                }
            }

однако при выполнении 
Код
 user.getRoles().clear();
 хибернейт выполняет dirty checking и сохраняет объект. 
Как можно этого избежать? 
Стоит ли добавить эту страницу в эксклуд для OpenSessionInViewFilter?
заранее спасибо 

Автор: garbuz 16.9.2009, 15:27
Можно у юзера сделать метод setRoles, куда передавать коллекцию ролей,а потом просто проапдейтить юзера.

Автор: magicfly 17.9.2009, 13:08
Можно, однако остается вопрос на идиологическом уровне. Нельзя ли как то отключить dirty checking определенных методах? 

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