Spring-Data-JPA 使用@Modifying修改(Modifying queries)

@Modifying去做数据更新

1、在UserDao上增加新方法

 

      /**
* 通过@Modifying结合@Query进行修改操作
*/
    @Modifying(clearAutomatically=true)
    @Transactional
    @Query("update User set name=:name, age=:age where id=:id") 

    void updateUserInfo(@Param("name") String name, @Param("age") Integer age, @Param("id") Integer id);

   注意:在使用@Modifying注解时,如果忘了加 @Transactional注解可能会报错。

 

2、在UserService上增加新方法

/**
*更新操作
*/
public void updateUserInfo(String name,Integer age,Integer id){
userDao.updateUserInfo(name, age, id);

}

       /**
* spring-data-jpa  自带更新操作
*/
public void updateUserInfo2(String name,Integer age,Integer id){
User one = userDao.getOne(id);
one.setName(name);
one.setAge(age);
userDao.saveAndFlush(one);
}

3、测试

      @Test
public void test9() {
userService.updateUserInfo("今天修改", 55, 1);
}
@Test
public void test10() {
userService.updateUserInfo2("今天修改222", 55, 1);
}

 

                                           

                                                                       JAVA程序猿成长之路

                                                    分享学习资源,学习方法,记录程序员生活。