try {
AggregateRootSink<T> sink = new AggregateRootSink<T>(expectedType, id);
eventStore.loadEventsFromLatestStreamVersion(id, sink);
return sink.getAggrateRoot();
} catch (EmptyResultDataAccessException ex) {
throw new AggregateRootNotFoundException(expectedType.getName(), id);
}
}