this.instanceListenerService = new InstanceListenerService(instanceListenerTypes);
this.entityPropertyManager = new EntityPropertyManager<>(this);
this.relationPropertyManager = new RelationPropertyManager<>(this);
this.relationInstanceManager = new RelationInstanceManager<>(this);
this.entityInstanceManager = new EntityInstanceManager<>(this);
this.instanceValidationService = new InstanceValidationService(validatorFactory, relationCache, entityCache);
this.cacheSynchronizationService = new CacheSynchronizationService<>(this, validationMode);
if (xoTransaction!=null) {
// Register default synchronizations.
xoTransaction.registerDefaultSynchronization(new CacheSynchronization<>(cacheSynchronizationService, entityCache, relationCache));
}