diff --git a/rdf_sync.module b/rdf_sync.module index 8539a34a00ec63e96a16c3acc38a5fc7bcc01d79..034b5c38192f89409b56cd69c0bcca9546976eff 100644 --- a/rdf_sync.module +++ b/rdf_sync.module @@ -152,9 +152,5 @@ function rdf_sync_entity_delete(EntityInterface $entity): void { $mapper = \Drupal::getContainer()->get('rdf_sync.mapper'); if ($entity instanceof ContentEntityInterface && $mapper->isMappedEntity($entity)) { \Drupal::getContainer()->get('rdf_sync.synchronizer')->synchronize(SyncMethod::DELETE, [$entity]); - \Drupal::database()->delete('rdf_sync_uri') - ->condition('entity_type', $entity->getEntityTypeId()) - ->condition('entity_id', $entity->id()) - ->execute(); } } diff --git a/rdf_sync.services.yml b/rdf_sync.services.yml index 2fc15b8749137cf7d5ea73d3778a8c52bae89617..c663f7120d58757bce6adee5f51d439c2b5307e2 100644 --- a/rdf_sync.services.yml +++ b/rdf_sync.services.yml @@ -45,6 +45,7 @@ services: - '@queue' - '@rdf_sync.mapper' - '@rdf_sync.normalizer' + - '@database' tags: - { name: needs_destruction } rdf_sync.normalizer.subscriber: diff --git a/src/RdfSyncSynchronizer.php b/src/RdfSyncSynchronizer.php index 13e30b9a2f3e1af7a2629e5afea04db76dad3f80..847be5bfdc33368b258cff5778ee4ad325bc1e22 100644 --- a/src/RdfSyncSynchronizer.php +++ b/src/RdfSyncSynchronizer.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Drupal\rdf_sync; +use Drupal\Core\Database\Connection; use Drupal\Core\DestructableInterface; use Drupal\Core\Entity\ContentEntityInterface; use Drupal\Core\Queue\QueueFactory; @@ -35,6 +36,8 @@ class RdfSyncSynchronizer implements DestructableInterface { * The RDF Sync mapper service. * @param \Symfony\Component\Serializer\Normalizer\NormalizerInterface $normalizer * The RDF Sync normalizer. + * @param \Drupal\Core\Database\Connection $database + * The database connection. */ public function __construct( protected StateInterface $state, @@ -42,6 +45,7 @@ class RdfSyncSynchronizer implements DestructableInterface { protected QueueFactory $queueFactory, protected RdfSyncMapper $mapper, protected NormalizerInterface $normalizer, + protected Connection $database, ) {} /** @@ -121,6 +125,11 @@ class RdfSyncSynchronizer implements DestructableInterface { $entities, ); RdfSyncConnection::deleteTriples($uris); + + // Update {rdf_sync_uri} table. + if ($method === SyncMethod::DELETE) { + $this->database->delete('rdf_sync_uri')->condition('uri', $uris, 'IN')->execute(); + } } if (in_array($method, [SyncMethod::INSERT, SyncMethod::UPDATE], TRUE)) {