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

Spring数据JPA-JPQL更新查询-打印出未更新的值

潘高洁
2023-03-14

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

    @Modifying(flushAutomatically = true)
    @Transactional
    @Query("update Student s set s.firstName = ?1 where s.lastName= ?2")
    public void updateFirstNameByLastName(String firstName, String lastName)
    @Test
    public void updateStudentFirstNameByLastName() {
        studentRepository.save(student); //student.firstName="Bill", student.lastName="Smith"
        studentRepository.updateFirstNameByLastName("John", "Smith");
        List<Student> studentList = studentRepository.findByFirstName("John"); // size 1
        System.out.println(studentList.get(0).getFirstName()); // "Bill"
    }

共有1个答案

陈鸿才
2023-03-14

我猜你的测试没有向数据库提交任何东西

尝试将@Rollback(value=false)添加到测试类可能会有所帮助

 类似资料:
  • 我在springdatajpa中执行更新查询时遇到问题。这是存储库层中的代码: 如您所见,我已经添加了@修改注释,但它仍然抛出“不支持DML操作”的错误,我正在使用Hibernate 5.4。非常感谢任何帮助。

  • 我有一些实体类,其id配置如下 接下来是我的问题。例如,第一天,我获取所有记录并保存它们。但是第二天我会再次得到所有的记录,包括第一天已经保存的记录。当我试着拯救第二天的时候会发生什么?是所有记录都将再次插入还是Spring数据只插入新记录,从第一天开始的旧记录将被更新?我需要第二种情况下的行为

  • 我想知道是否有可能通过spring jpa存储库执行jpql查询,并能够使用分页作为排序功能,就像使用示例和规范一样。我想做一些类似的事情: QueryByQuestpleExector接口,即声明: JpaSpecificationExector接口声明:

  • 和 和 我的存储库:

  • 我在这个表上有一个关于hibernate的更新查询 在OrderEntity上,当我有机器名时,我与另一个表有另一个关系。 在JPA存储库中,我有一个查询。基本上,首先我按机器和状态搜索,然后我想更新旧状态以输入状态字段的当前值,然后输入状态以输入新状态。就是这样: 现在我有这个错误

  • OTA更新查询与下载 获取access_token 终端设备 终端设备直接接入OTA服务器应当使用Client Credentials模式,client_id为设备id,client_serect为设备令牌. App接入 如果终端设备无法直接接入OTA服务器,而通过App中转,那么App应当也使用Client Credentials模式,client_id为app_id,client_secret