Am o entitate personalizată la care am adăugat câteva câmpuri calculate, deci clasele implicate sunt:
clasa MyEntity extinde ContentEntityBase
clasa ComputedFieldA extinde FieldItemList
clasa ComputedFieldB extinde FieldItemList
Problema mea este că vreau ca câmpurile calculate fie să nu fie memorate în cache, fie să fie stocate în cache, dar cu o strategie de invalidare diferită.
Este posibil ceea ce vreau? Sau trebuie doar să invalidez memoria cache pentru întreaga entitate?
Editare: câmpul personalizat în sine este practic un număr de rânduri dintr-un alt tabel al bazei de date.Vreau ca numărul respectiv să fie memorat în cache separat, apoi invalidat dacă sunt inserate rânduri noi.
Ieșirea este consumată prin punctul final jsonapi implicit pentru entitate.
Edit 2: Cred că acest lucru este mai complex decât credeam, așa că voi descrie entitățile mai detaliat:
Entitatea A:
- Are o relație 1:1 cu nodurile bazate pe UUID
- Are un număr de entități de Entitate B care sunt legate de nod (calculat)
- Are un calcul bazat pe acel număr (calculat)
Entitatea B:
- Are o relație N:1 cu nodurile bazate pe NID
Deci, dacă este creată o nouă Entitate B pentru nodul X, atunci vreau ca cache-ul să fie invalidat pe cele două câmpuri calculate ale Entității A pentru nodul XXXX-XXXX-XXXX-XXXX, astfel încât punctul final jsonapi să arate date calculate la zi.
Dacă pot adăuga o etichetă cache a nodului:X la fiecare instanță a câmpului calculat, mă aștept că va realiza ceea ce vreau.