Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
嗨,我是 JPA 的新手,我想知道如何处理以下场景
我需要在数据库中维护接收到的消息的总数,不需要存储消息而只存储它的计数。我用一个名为 MessageCount 的实体表示计数,该实体具有如下的变量计数
@Entity public class MessageCount { long count; ...
每当我收到消息时,我都需要更新计数。
我该如何更新它? 处理此问题的正确方法是什么?
提前致谢 。
可靠(阅读:原子地)执行此操作的唯一方法是发出直接查询(而不是获取实体并增加它)。适当的 JPA 查询将是:
UPDATE MessageCount SET count = count + 1
如果您使用 JPA 获取实体,添加 1,然后再次保存 - 您可能会覆盖另一个线程已增加并保存的值。在单个查询中执行操作可确保它发生在单个原子事务中。