Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). Varbase Media Header 9.2.1 Minor update available for module varbase_media_header (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

Composite Reference

331 sites Security covered
View on drupal.org

This module makes entity reference fields "composite," meaning the referenced entities are automatically deleted when the item referencing them is deleted. This is useful for ensuring data cleanup, but should typically be used for entities that are only referenced once.

The Composite Reference module allows users to mark entity reference fields as composite.

Composite reference fields ensure that referenced entities get deleted when the referencing entity is deleted.

The deletion is prevented if the referenced entity is referenced by another entity but typically you should ensure you only use this capability for entities that can be referenced only once.

How to

The module works with both Entity Reference and Entity Reference Revisions field types.

Field configs

For configurable (bundle) fields, edit the field configuration and check the box to mark the reference as composite. The rest is taken care of.

Base fields

For base fields, simply set a custom field setting on the entity reference or entity reference revision field definition, like so:

$fields['my_field'] = BaseFieldDefinition::create('entity_reference')
  ->setLabel(t('My reference'))
  ->setSettings([
    'target_type' => 'node',
    'composite_reference' => TRUE,
  ]);

If the base field gets overridden, this setting will get exported to the third party setting and it will continue to work.

Activity

Total releases
2
First release
Feb 2025
Latest release
7 months ago
Releases (12 mo)
1
Maintenance
Active

Releases

Version Type Release date
2.4.x-dev Dev Nov 20, 2025
2.4.0 Stable Feb 17, 2025