Привет
У меня есть спящий объект, который имеет набор другого объекта в качестве своего поля.Примерно так:
public class UserEntity implements Srializable {
private Set<Role> roles;
}
Я должен хранить таблицы таким образом, чтобы в системе всегда был хотя бы один пользователь ADMIN.Это можно сделать простым способом, как показано ниже:
public void updateUser{
UserEntity ue = getUser();
if (userIsNotTheLastAdmin(ue)) {
/** Here is a race condition **/
roles.remove(Role.ADMIN);
getSession().saveOrUpdate(ue);
}
}
Но настоящая проблема возникает, когда у нас есть параллельные операции.Как я могу выполнить все операции атомарным способом?
Спасибо,
HM