this.entityCache = new TransactionalCache<>();
this.relationCache = new TransactionalCache<>();
DatastoreTransaction datastoreTransaction = datastoreSession.getDatastoreTransaction();
this.xoTransaction = datastoreTransaction != null ? new XOTransactionImpl(datastoreTransaction) : null;
List<XOInterceptor> interceptorChain = new ArrayList<>();
interceptorChain.add(new ConcurrencyInterceptor(concurrencyMode));
interceptorChain.add(new TransactionInterceptor(xoTransaction, defaultTransactionAttribute));
this.interceptorFactory = new InterceptorFactory(interceptorChain);
this.proxyFactory = new ProxyFactory(interceptorFactory, classLoader);
this.instanceListenerService = new InstanceListenerService(instanceListenerTypes);
this.entityPropertyManager = new EntityPropertyManager<>(this);