我有一个Spring应用程序,它允许多个用户帐户对mongodb中的文档进行“投票”。这会增加或减少字段值。只允许用户进行一次upvote或downvote(两次upvoting / downvoting应该将值恢复到原始状态)。但是,有时字段值会被同一用户多次递增/递减。我想实现一个“锁定”,这样就不会发生这种情况。我已经看过Java Locks,但我不确定使用它只会锁定特定用户或每个用户的功能。
答案 0 :(得分:0)
您需要做的是在模型中定义hasVoted字段。所以...:
public class User {
private boolean hasVoted = false;
}
当用户投票时,请检查hasVoted是否为false。如果为false,则注册投票,然后将hasVoted更新为true。如果hasVoted为true,则忽略投票。
您不一定需要Java功能来实现它,只需稍微调整一下逻辑。