【发布时间】:2020-04-05 16:25:20
【问题描述】:
我需要构建一个从数据库获取记录的应用程序,等于某个值,如果它返回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);
}
我想检查来自Game 的LocalDateTime 值是否等于当前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))。
【问题讨论】:
标签: java hibernate spring-boot datetime spring-data-jpa