java - 更新查询并返回单列

标签 java spring spring-data-jpa jpql

我有以下自定义查询:

    @Transactional
    @Modifying
    @Query(value = "UPDATE ARTICLE set likes = likes + 1 WHERE article_id = ?1", nativeQuery = true)
    int likeArticleById(UUID uuid);

所以这个方法返回我更改的行数。

是否有可能获取更新后的值作为返回值?

在此示例中,我正在更新点赞数并希望返回更新后的点赞数。

最佳答案

您可以做的是将更新和检索喜欢操作包装在另一个@Transactional方法中。代码应如下所示:

此方法应该位于 @Service 类中:

@Transactional
int likeArticleAndRetriveNewLikes(UUID uuid) {
    repository.likeArticleById(uuid);
    return repository.getArticleLikesById(uuid);
}

这些是您的@Repository公开的方法:

@Modifying
@Query(value = "UPDATE ARTICLE set likes = likes + 1 WHERE article_id = ?1", nativeQuery = true)
int likeArticleById(UUID uuid);

@Query(value = "SELECT likes FROM ARTICLE WHERE article_id = ?1", nativeQuery = true)
int getArticleLikesById(UUID uuid);

关于java - 更新查询并返回单列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46621062/

相关文章:

java - SpringBoot 不从 yml 配置创建数据源

java - Spring - 如何从 BindingResult 中删除 `FieldError`?

java - Spring JPA - 实体的 RESTful 部分更新和验证

spring - hibernate 中带有 onetomany 注释的 org.hibernate.exception.ConstraintViolationException

java - 使用 Spring JPA 查询过滤数据

java - 什么样的应用程序需要 Heroku 上的信用卡验证?

java - jquery 移动 android t9 禁用

spring - Spring MVC 中返回 ModelAndView 和返回 String 有什么区别?

java - ListView 中的 YouTubePlayerFragment 出现 AppCompatActivity 错误

java - 如何编写java TCP对象传输用于多个客户端