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

Spring data JPA更新多行

窦英武
2023-03-14

查询(非本机):

update MyEntity e set e.col_1 = :v1, e.col_2 = :v2 where e.id in :ids

Spring数据JPA方法

@Modifying(clearAutomatically = true)
@Transactional
public int updateCols(@Param("v1") String v1, @Param("v2") String v2, @Param("ids") List<Long> idList);

使用Spring JpaTransactionManager

共有1个答案

琴英华
2023-03-14

首先,AFAIK Spring Data JPA不能单独存在,它只是构建在纯JPA基础上的东西。它需要使用Hibernate或任何其他JPA提供程序

https://github.com/colonder/spring-hibernate-javafx-indumes

看看我的存储库。它是Hibernate+Spring Boot+Spring Data JPA+Java FX8,但我认为它会对您有所帮助。我的回购遵循MVC模式,使用Spring事务管理器,就像你的一样。关于问题3和问题4,AFAIK Hibernate(因为Spring Data JPA在我的例子中作为提供者使用它)更新DB中的行,而不是应用程序中的行。问题应该是DB中更新的行在应用程序中不可见,而不是相反。

 类似资料:
  • 如何使用Spring Rest Controller和Spring Data JPA仅更新从@刚体传递的实体属性? 员工实体: 服务类方法: 请求体: Hibernate更新查询: Spring Data JPA正在尝试将company_id设置为空以进行更新,即使我没有将其传递给请求体?但是如果我从数据库中得到实体,使用employee_id传递,然后如果我试图保存(),那么它的工作正常。 我想

  • 问题内容: 我想更新表的所有字段的值为“ PCNAME”。我要更新的表名是XYZ。我只想更新一些字段而不保留一些不变。 这会影响很多行而不是一行,因为会有很多行带有NAME =’PCNAME’。我如何使用JPA做到这一点。我有与此表关联的实体类。 问题答案: 您既可以采用面向对象的方式,也可以使用更新查询。 面向对象: 使用更新查询(未试用): 显然,第二个版本的性能更好。

  • 问题内容: 我需要执行选择,然后以原子方式更新其中的一些行。 我正在使用的代码如下所示(简化): 我可以保证更新将自动执行吗?如果没有,我如何保证? 如果任何其他进程更改了您通过其更新的数据库行,该怎么办?有什么方法可以锁定行? 问题答案: 这里可能有很多技术和概念在起作用,当您开始考虑多线程/多请求应用程序时,事情就会变得相当棘手。 正如Iassevk所说,您应该研究使用事务来确保更新的原子性-

  • 问题内容: 我可以在数据库中插入多行,但是问题是当我尝试更新它时,我收到一条Codeigniter错误消息。这是我的模型,实际上我没有什么重要的控制器可以找到错误,这是因为我只是在控制器中加载了该模型。 问题答案: 在您接下来的部分应该是 替换为 并更新您应该使用的值,而不是 替换为原始表名,并将其用作键,因此您无需使用。 参考: CodeIgniter 。

  • 我需要更新我的数据库,它是基于locationId的多行软删除 当我运行查询时,我得到一个错误: 错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有使用键列禁用安全模式的表,请在“首选项”中切换该选项- 正如我所知,子查询将返回两条记录,因为子查询返回两条记录更新不会发生,但我如何解决这个问题。我试图解决这个问题,但没有成功。

  • 您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,了解正确的语法....