Spring Boot redis set expire
Привет) У меня есть приложение, в котором мне нужно связать пользователя с кодом верификации, чтобы код умирал через сутки. Пока, я пользуюсь такой вот штукой:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
//зависимость в pom.xml
------------------------------------------
@Repository
public interface ActivationCodeRepo extends JpaRepository<ActivationCode, String> {
}
-------------------------------------------
@Data
@RedisHash
public class ActivationCode {
@Id
private String code;
private Long userId;
private LocalDateTime expiration = LocalDateTime.now().plusDays(1L);
}
----------------------------------------------
//и метод, активирующий юзера по этому коду
public boolean activateUser(String code) {
Optional<ActivationCode> codeFromDb = activationCodeRepo.findById(code);
if (!codeFromDb.isPresent()) {
return false;
} else if (codeFromDb.get().getExpiration().isBefore(LocalDateTime.now())) {
activationCodeRepo.delete(codeFromDb.get());
return false;
}
boolean b = userService.activateUser(codeFromDb.get().getUserId());
activationCodeRepo.delete(codeFromDb.get());
return b;
}
Само собой, я знаю, что в redis можно добавить необязательный параметр set foo bar ex 360 (seconds)
Но как то можно сделать в SpringBoot?