16 private $metadataPool;
21 private $typeResolver;
26 private $sequenceManager;
31 private $sequenceRegistry;
36 private $hydratorPool;
52 $this->metadataPool = $metadataPool;
53 $this->typeResolver = $typeResolver;
54 $this->sequenceManager = $sequenceManager;
55 $this->sequenceRegistry = $sequenceRegistry;
56 $this->hydratorPool = $hydratorPool;
74 $sequence = $this->sequenceRegistry->retrieve(
$entityType)[
'sequence'];
77 $metadata = $this->metadataPool->getMetadata(
$entityType);
78 $hydrator = $this->hydratorPool->getHydrator(
$entityType);
80 $entityData = $hydrator->extract(
$entity);
83 if (isset($entityData[$metadata->getIdentifierField()]) && $entityData[$metadata->getIdentifierField()]) {
84 $this->sequenceManager->force(
$entityType, $entityData[$metadata->getIdentifierField()]);
86 $entityData[$metadata->getIdentifierField()] = $sequence->getNextValue();
__construct(\Magento\Framework\EntityManager\MetadataPool $metadataPool, \Magento\Framework\EntityManager\TypeResolver $typeResolver, \Magento\Framework\EntityManager\Sequence\SequenceManager $sequenceManager, \Magento\Framework\EntityManager\Sequence\SequenceRegistry $sequenceRegistry, \Magento\Framework\EntityManager\HydratorPool $hydratorPool)