A little bit too late, but hopefully will help someone.
I has the same problem while reproducing the Cms Block SaveHandler behavior. Instead of using the deprecated \Magento\Framework\EntityManager\EntityMetadataInterface::getEntityConnection
, I have used the Magento\Framework\App\ResourceConnection
<?php
namespace YourVendorName\YourModule\Model\ResourceModel\YourEntity\Relation\Store;
use Magento\Framework\App\ResourceConnection;
use Magento\Framework\DB\Adapter\AdapterInterface;
use Magento\Framework\EntityManager\Operation\ExtensionInterface;
class SaveHandler implements ExtensionInterface
{
private ?AdapterInterface $connection = null;
private ResourceConnection $resourceConnection;
/**
* @param ResourceConnection $resourceConnection
*/
public function __construct(
ResourceConnection $resourceConnection
) {
$this->resourceConnection = $resourceConnection;
}
/**
* @inheritDoc
*/
public function execute($entity, $arguments = [])
{
(...)
$connection = $this->getConnection();
(...)
}
/**
* Connects to the database
*
* @return AdapterInterface
*/
private function getConnection(): AdapterInterface
{
if (!$this->connection) {
$this->connection = $this->resourceConnection->getConnection('core_write');
}
return $this->connection;
}
}