如何使用QueryDSL在“like”值上添加1

时间:2017-08-21 14:57:55

标签: java postgresql querydsl

在我的postgres数据库中,我有一个单元格可以保存有多少人点击“我喜欢”相应的帖子。但是,我想知道我目前的解决方案是否在postgres中并发。我现在所做的是我的道教课程中的两个步骤。

1)获取DB中的当前值。 2)添加1,然后更新它。

如果不是,我怎样才能让它并发?我正在使用Java(querydsl)和Postgres。请帮忙吗?

更新

感谢您的回答。我没有说清楚的一件事是我使用querydsl。所以我不使用普通列方式。但还是谢谢。

2 个答案:

答案 0 :(得分:2)

假设您的表名为posts并且您有QPosts个查询类,那么您可以这样做:

QPosts p = QPosts.posts;
queryFactory.
   update(q).
   set(q.likes, q.likes.add(1)). 
   where(q.id.eq(42));

然后生成以下SQL:

update posts
  set likes = likes + 1
where posts.id = 42

答案 1 :(得分:1)

我从未做过PostgreSQL,但我发现了一些东西。

UPDATE tableName 
SET likes = likes + 1;

告诉我它是否合适,

如果我帮助你,我很高兴!