1

嗨,我是 JPA 的新手,我想知道如何处理以下场景

我需要在数据库中维护接收到的消息的总数,不需要存储消息而只存储它的计数。我用一个名为 MessageCount 的实体表示计数,该实体具有如下的变量计数

    @Entity  
    public class MessageCount  
    {  
        long count;
    ...

每当我收到消息时,我都需要更新计数。

我该如何更新它?
处理此问题的正确方法是什么?

提前致谢 。

4

1 回答 1

2

可靠(阅读:原子地)执行此操作的唯一方法是发出直接查询(而不是获取实体并增加它)。适当的 JPA 查询将是:

UPDATE MessageCount SET count = count + 1

如果您使用 JPA 获取实体,添加 1,然后再次保存 - 您可能会覆盖另一个线程已增加并保存的值。在单个查询中执行操作可确保它发生在单个原子事务中。

于 2013-07-19T11:52:50.770 回答