如何使用单实例处理JPA中的实体?

时间:2013-07-19 11:49:10

标签: java jpa

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

我需要在数据库中维护收到的消息总数,不需要存储消息,只需要存储消息.Im表示一个名为MessageCount的实体的计数,其变量计数如下

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

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

我如何更新? 处理这个问题的正确方法是什么?

先谢谢。

1 个答案:

答案 0 :(得分:2)

可靠地(读取:原子地)这样做的唯一方法是发出直接查询(而不是获取实体并递增它)。相应的JPA查询将是:

UPDATE MessageCount SET count = count + 1

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