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

获取执行jpql查询后更新的记录数

昌正奇
2023-03-14

如何在执行jpql查询后更新记录数,如

UPDATE Device d SET d.name =:Name WHERE d.locationId=:id

共有2个答案

霍修筠
2023-03-14

您可以使用执行更新()方法获得如下计数:

Query query = em.createQuery(
  "UPDATE Device d SET d.name =:Name WHERE d.locationId=:id");
int updateCount = em.executeUpdate();
孙斌
2023-03-14
@Modifying  
@Query("UPDATE Device d SET d.name =:Name WHERE d.locationId=:id")
int  updateDeviceName(@Param("Name ") int Name ,
        @Param("id") int id);

该方法的返回类型是一个整数,它等于受影响的行数,但是如果不需要或不需要,可以将其设置为无效。添加@Moditify(clear自动=true)以确保EntityManager从过时的条目中得到清理,以确保数据的新鲜度。

这可以确保在执行查询时自动清除EntityManager,确保没有不同步的实体。在某些情况下,这可能是可取的,但这取决于使用存储库方法的上下文,因此您必须对此小心;很容易在不注意或不记得这种副作用的情况下使用这种方法,这可能会在您的应用程序中引起问题。希望单元测试能够捕捉这样的错误,但事实可能并非如此。所以明智地使用这个标志。

执行查询后更新记录的数量:-执行查询后更新记录

 类似资料:
  • 我是使用NodeJS的这个cassandra数据库的新手。

  • 问题内容: 我想知道使用PHP PDO执行什么查询。我有: 我想得到类似的东西: 可能吗?谢谢 问题答案:

  • 问题内容: 我在Spring和mongodb中使用了hibernate JPA,并且我在Glassfish-4.0上运行我的应用程序。 我的服务类别是: 我的spring-context.xml是: 我在代码中应用了一些更改,但是它们没有效果。谁能帮我解决这个问题。提前致谢。 问题答案: 我不确定这是否会帮助你解决问题(即是否仍然存在),但是,在网上搜索类似问题之后。 我从持久性EntityMan

  • 尝试在Spring Data JPA中做更新查询。在我的测试方法(见下文)中,我正在保存一个学生firstName="Bill"和lastName="Smith"。怎么可能是我正在将"Bill"打印出来到控制台(非常最后一行),鉴于学生Respository.findByFirstName("John")实际上给出了一个列表与一个成员?任何帮助赞赏...

  • 问题内容: 我有一个带有库的IntelliJ项目:Hibernate-entitymanager 4.3.4和JPA 2.0-2.0。使用postgresql-9.3.1100.jdbc4连接到数据库。如何解决? jpa-ql>从ItemEntity中选择ItemEntity.name; 问题答案: 只需阅读文档: http://docs.oracle.com/javaee/7/api/javax

  • 问题内容: 好的,可以说我正在对一个表进行mysql操作,并且该表的列设置为和。 如何获得查询以在同一查询中输出新生成的主键的值? 目前,我正在运行第二个查询来检索ID,但是考虑到这可能会产生错误的结果,这似乎不是一种好习惯。 如果这不可能,那么确保我检索正确ID的最佳实践是什么? 问题答案: 您需要使用以下功能:http : //dev.mysql.com/doc/refman/5.0/zh-