最简单的解决方案是将并发委托给您的数据库,并且仅依赖于当前修改的行上的数据库隔离级别锁:
增量就这么简单:
UPDATE Tag t set t.count = t.count + 1 WHERE t.id = :id;
减量查询为:
UPDATE Tag t set t.count = t.count - 1 WHERE t.id = :id;
UPDATE查询会锁定已修改的行,以防止其他事务在当前事务提交之前(只要您不使用READ_UNCOMMITTED
)修改同一行。
Spring,JPA和Hibernate-如何在没有并发问题的情况下增加计数器
最简单的解决方案是将并发委托给您的数据库,并且仅依赖于当前修改的行上的数据库隔离级别锁:
增量就这么简单:
UPDATE Tag t set t.count = t.count + 1 WHERE t.id = :id;
减量查询为:
UPDATE Tag t set t.count = t.count - 1 WHERE t.id = :id;
UPDATE查询会锁定已修改的行,以防止其他事务在当前事务提交之前(只要您不使用READ_UNCOMMITTED
)修改同一行。