getEntityByID<O> method
FutureOr<O?>
getEntityByID<O>(
- dynamic id, {
- Type? type,
- bool sync = false,
- EntityResolutionRules? resolutionRules,
override
Implementation
@override
FutureOr<O?> getEntityByID<O>(id,
{Type? type, bool sync = false, EntityResolutionRules? resolutionRules}) {
var oAsync = transaction.getEntityByID<O>(id, type: type, sync: sync);
return oAsync.resolveMapped((o) {
if (o != null || sync) return o;
var t = type ?? O;
if (!EntityHandler.isValidEntityType(t)) {
return null;
}
final resolutionRulesResolved =
resolveEntityResolutionRules(resolutionRules ?? this.resolutionRules);
var allowEntityFetch = resolutionRulesResolved.allowEntityFetch;
if (!allowEntityFetch) {
return null;
}
var entityRepository =
entityRepositoryProvider.getEntityRepository(type: t);
if (entityRepository == null) return null;
var sel = entityRepository.selectByID(id,
transaction: transaction, resolutionRules: resolutionRulesResolved);
return sel.resolveMapped((o) => o as O?);
});
}