我需要在存储在DB中的实体上实现增量函数(我们使用Hibernate)。我试图找到更好的方法进行这样的操作。是使用synchronyzed()
还是SQL查询?
我有这段代码:
Question q = answer.getQuestion();
Vote v = new Vote();
v.setUser(user);
v.setAnswer(answer);
v.setRightAnswer(answer.isRightAnswer());
v.setQuiz(q.getQuiz());
v.setQuestion(q);
v.setPoints(answer.getPoints());
synchronized (lock) {
q.setVotes(q.getVotes() + 1);
}
save(v);
questionDao.save(q);
这是来自DAO类的方法,在该类中锁定为private final Object
字段。