in core/src/main/scala/org/apache/pekko/persistence/jdbc/snapshot/JdbcSnapshotStore.scala [68:84]
override def loadAsync(
persistenceId: String,
criteria: SnapshotSelectionCriteria): Future[Option[SelectedSnapshot]] = {
val result = criteria match {
case SnapshotSelectionCriteria(Long.MaxValue, Long.MaxValue, _, _) =>
snapshotDao.latestSnapshot(persistenceId)
case SnapshotSelectionCriteria(Long.MaxValue, maxTimestamp, _, _) =>
snapshotDao.snapshotForMaxTimestamp(persistenceId, maxTimestamp)
case SnapshotSelectionCriteria(maxSequenceNr, Long.MaxValue, _, _) =>
snapshotDao.snapshotForMaxSequenceNr(persistenceId, maxSequenceNr)
case SnapshotSelectionCriteria(maxSequenceNr, maxTimestamp, _, _) =>
snapshotDao.snapshotForMaxSequenceNrAndMaxTimestamp(persistenceId, maxSequenceNr, maxTimestamp)
case _ => Future.successful(None)
}
result.map(_.map(toSelectedSnapshot))
}