Например, у меня есть
public interface CrudUserRepository extends JpaRepository<User, Integer> {
@Modifying
@Query(nativeQuery = true, value = "UPDATE users SET active=?2 WHERE id=?1")
void setActive(long id, boolean active);
}
В моем тесте я вызываю этот метод, а затем нахожу по идентификатору.
@Autowired
CrudUserRepository crudUser;
@Transactional
@Test
public void setActiveTest(){
User user = getUser();
crudUser.save(user);
crudUser.setActive(user.getId(), true);
Optional<User> optUser = crudUser.findById(user.getId());
assert optUser.get().isActive(); //here my test falls
И когда я выполняю crudUser.findById(user.getId())
, мой optUser содержит этого пользователяне активен, но на самом деле он активен (я проверил это, установив @Rollback (false) и вручную отметив в db).
Как я могу проверить этот случай?