Tips:
- 如果修改或删除的方法没有被事务管理,需要在方法上加上
@Transactional
- 修改和删除的方法返回值可以是
void
或者是int
,当是int
时,返回1
代表成功,0
代表失败 - 删除方法可以不使用
@modify
和@Query
注解,直接通过命名规则的方法删除
1、修改数据,使用 @Modify
和 @Query
注解
@Modifying
@Query("update User u set u.firstname = ?1 where u.lastname = ?2")
int setFixedFirstnameFor(String firstname, String lastname);
123
2、删除数据,使用 @Modify
和 @Query
注解
@Modifying
@Query("delete from User u where u.role.id = ?1")
void deleteInBulkByRoleId(long roleId);
123
3、删除数据,使用命名规则
void deleteByRoleId(long roleId);
1