Предположим, у нас есть таблица базы данных (сущность JPA), которая создается следующим образом
id|start_date |end_date |object_id
1 |2018-01-01 00:00:00|2018-07-01 20:00:00|1
Я хотел бы запустить определенный метод, когда end_date передает current_date () - и я хочу, чтобы Spring / Java / DB запускал этот метод без использования планировщиков. Некоторый псевдокод ниже:
when (end_date <= current_date()) -> myClass.executeMyMethod(object_id)
Это вообще возможно? Я искал много разных сайтов и пока не нашел ответа.
Редактировать - вот сущность, для которой я хотел бы сделать это:
@Entity
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "time_based_event", schema = "timing")
public class TimePassingByTrigger {
@Column(name = "id", nullable = false)
protected Long id;
@Column(name = "start_date", nullable = false)
protected LocalDateTime startDate;
@Column(name = "endDate", nullable = false)
protected LocalDateTime endDate;
@Column(name = "object_id", nullable = false)
protected Long objectId;
}
А для сервисного вызова - давайте предположим, что я хотел бы сделать что-то вроде:
public class TimeFiredEvent {
// this method should be executed for each objectId for
// which end_date has passed
public void thisShouldRunOnlyWhenDatePasses(Long objectId) {
System.out.println("Time has passed for object: " + objectId);
}
}