У меня есть такой класс
@Entity
@Table(name = "Event")
public class Event {
@Transient
public static final long MAX_TIMESTAMP = 253402214400000L; // 9999-12-31 00:00:00
private Date creationTime;
private Date expiryTime;
private String otherValue;
public Event(int timeout, String otherValue){
this.creationTime = new Date();
this.expiryTime = (timeout == 0 ? new Date(MAX_TIMESTAMP) : new Date(creationTime.getTime() + SECONDS.toMillis(timeout)));
this.otherValue = otherValue;
}
}
Я вызываю save () methed в CrudRepository и сохраняю эти данные.
и у меня есть ScheduledExecutorService, чтобы выяснить некоторые события тайм-аута:
@Query("SELECT t FROM Event t WHERE t.expiryTime < CURRENT_TIMESTAMP")
List<Event> findTimeoutEvents();
этот CURRENT_TIMESTAMP - это время базы данных, а expiryTime - нет.Это означает, что я должен сделать так, чтобы их время было одинаковым. Иногда приложение и база данных находятся не на одном компьютере, я не могу убедиться, что их время одинаково.Как я могу передать параметр "timeout" в базу данных.
база данных может быть postgresql или mysql.
большое спасибо.