こんにちは
、フィールドとして別のエンティティのセットを持つ休止状態のエンティティがあります。このようなもの:
public class UserEntity implements Srializable {
private Set<Role> roles;
}
少なくとも 1 人の ADMIN ユーザーが常にシステムに存在するようにテーブルを保持する必要があります。これは簡単な方法で行うことができ、以下のようになります。
public void updateUser{
UserEntity ue = getUser();
if (userIsNotTheLastAdmin(ue)) {
/** Here is a race condition **/
roles.remove(Role.ADMIN);
getSession().saveOrUpdate(ue);
}
}
しかし、実際の問題は、同時操作がある場合に発生します。すべての操作をアトミックに実行するにはどうすればよいですか?
ありがとう、
HM