当前位置: 首页 > 知识库问答 >
问题:

如何获得spring data jpa中更新记录的计数?

连乐
2023-03-14

我使用spring data jpa和hibernate作为jpa持久性提供者。

我在我的应用程序中使用本机查询。有一些更新查询,我想在执行更新查询时获得更新记录的实际数量。在Spring data jpa中有没有办法做到这一点?

我目前正在遵循以下方法;

@Modifying
@Query(value="update table x set x_provision = ?1 where x_id = ?2", nativeQuery=true)
int updateProvision(Integer provision, Integer id);

@在服务层上添加了事务性。

这里的问题是,当表被更新时,我得到的计数是1。但在某些情况下,行不会被更新。在这种情况下,我得到的计数也是1。但我希望收到更新的实际记录数,有时是0。

如果我做错了什么,有人能告诉我吗?

共有1个答案

山阳辉
2023-03-14

如果您查看ModifyingExecutor,它用于执行此查询

@Override
protected Object doExecute(AbstractJpaQuery query, Object[] values) {
    int result = query.createQuery(values).executeUpdate();
    if (em != null) {
        em.clear();
    }
    return result;
}

然后您会看到,它只委托给本机JPA架构体系,以返回更新元素的数量。

所以,这可能与使用的数据库或ORM框架配置有关,除此之外,您编写的查询应该返回正确的结果。

 类似资料:
  • 问题内容: 我需要从数据库获取最新记录。我正在使用sqlalchemy。此刻,我正在那样做: 但是查询太繁琐了。我怎样才能更好地获得最近的记录? 问题答案: 看一看。如果你在右列上指定排序,则第一个将是你的最后一个。一个示例可能如下所示:

  • 我有一个包含4列的Athena表,我想查找: null

  • 我使用从获取值。我需要做记录, 我尝试使用以下代码: 但是当在中的

  • 更新记录 V2.0.0 加入寄存器运行模式,可大幅提升热更内数值计算性能 执行性能整体提升,传统非寄存器模式执行效率也得到一定幅度提升 修正热更内finnaly块在一些情况下不正确的bug,连带修复了yield return和async/await的一些异常情况 修正值对类型绑定后的数组进行操作时的异常 修正热更内Enum一些情况下Equals结果错误的bug 修正跨域继承接口时的一些异常情况 修

  •  版本更新记录 2016.09.10 1) 底层组件-新增时间处理集合 2016.09.5 1) 底层组件-优化防刷 2) 底层组件-错误监控 2) 底层组件-优化通过类名绑定相关事件 2016.08.25 1) 底层组件-新增百度统计组件 2016.08.11 1) 底层组件-优化udb定制登录,增加QQ登录 2) 活动组件-新增完成任务组件 2016.08.9 1) 活动组件-新增防刷组件

  • 在对模型及其相关模型执行更新操作后,我需要保存更新的字段数。 假设我有一个用户配置文件编辑表单。在该表单上,我允许用户更新其firtname,lastname,密码。 用户模型有电子邮件和密码字段,其他字段也很少。 UserProfile模型也有名、姓和其他字段。 User模型与具有hasOne关联的UserProfile模型相关联。 有很多,也有很多联系。 如果用户更新了名字和密码,我需要向用户