如何锁定一个用户的功能?

时间:2016-02-28 11:16:41

标签: java spring mongodb

我有一个Spring应用程序,它允许多个用户帐户对mongodb中的文档进行“投票”。这会增加或减少字段值。只允许用户进行一次upvote或downvote(两次upvoting / downvoting应该将值恢复到原始状态)。但是,有时字段值会被同一用户多次递增/递减。我想实现一个“锁定”,这样就不会发生这种情况。我已经看过Java Locks,但我不确定使用它只会锁定特定用户或每个用户的功能。

1 个答案:

答案 0 :(得分:0)

您需要做的是在模型中定义hasVoted字段。所以...:

public class User {
    private boolean hasVoted = false;
}

当用户投票时,请检查hasVoted是否为false。如果为false,则注册投票,然后将hasVoted更新为true。如果hasVoted为true,则忽略投票。

您不一定需要Java功能来实现它,只需稍微调整一下逻辑。