Мне нужно создать приложение, которое получает записи из базы данных, равно некоторому значению, и если оно возвращает true
, оно выполнит какое-то действие. Мне было интересно, может ли JPA сделать что-то подобное.
У меня есть сущность Game
:
@Data
@Entity
public class Game {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
public Game() {
}
@OneToOne
private Team teamBlue;
@OneToOne
private Team teamRed;
@DateTimeFormat(pattern = "HH:mm:ss yyyy-MM-dd")
private LocalDateTime localDateTime;
}
и GameRepository
, которая возвращает Game
:
@Repository
public interface GameRepository extends JpaRepository<Game, Long> {
@Override
Optional<Game> findById(Long aLong);
}
Я хочу проверить, равно ли значение LocalDateTime
из Game
текущему LocalDateTime
(LocalDateTime.now()
), и если это так, выполнить какое-либо действие. Конечно, я мог бы использовать @Scheduled
и вызывать метод каждые 1 час, но мне интересно, возможно ли то, что я описываю.
Краткое резюме:
Game
сущность в базе данных с LocalDateTime
= 2020-04-05 21: 00: 00
Текущая дата-время: 2020-04-05 12:00:00 (ничего не делать, потому что текущая дата-время не равно Game
дата-время)
[9 часов спустя]
Game
сущность в базе данных (неизменяемая) с LocalDateTime
= 2020-04-05 21: 00: 00
Текущая дата-время: 2020 -04-05 21:00:00 (текущая дата и время совпадают с датой Game
, поэтому выполните некоторые действия (например, System.out.println(game)
)).