protected <T> AchillesFuture<T> asyncFind(final Class<T> entityClass, final Object primaryKey, Options options) {
Validator.validateNotNull(entityClass, "Entity class should not be null for find by id");
Validator.validateNotNull(primaryKey, "Entity primaryKey should not be null for find by id");
Validator.validateTrue(entityMetaMap.containsKey(entityClass), "The entity class '%s' is not managed by Achilles", entityClass.getCanonicalName());
Validator.validateTrue(entityMetaMap.containsKey(entityClass), "The entity class '%s' is not managed by Achilles", entityClass.getCanonicalName());
PersistenceManagerOperations context = initPersistenceContext(entityClass, primaryKey, options);
entityValidator.validatePrimaryKey(context.getIdMeta(), primaryKey);
return context.find(entityClass);
}