Události
V tuto chvíli již víte jak entitu definovat a patrně máte povědomí o všech "těch věcech okolo" jako jsou relace vnitřní a vnější a tak dále. Tedy víte jak entity definovat. Než si ukážeme jak je ukládat, načítat a tvořit dotazy, tak si ještě řekneme něco o událostech.
A ne, nečekejte žádný "ultra-sofistikovaný" systém událostí (Poznámka: to v Jet kdysi také bylo, ale bylo to spíš pro zlost než pro užitek).
Události (a hlavně jejich obsluha) v rámci Jet DataModel není nic jiného, než několik metod, které vy můžete (ale nemusíte) v rámci vašich entit implementovat a které Jet DataModel volá v ten správný moment.
afterLoad(): void
Z názvu metody je patrné, že je volána po nahrání objektu. Tedy po té co Jet DataModel vytvoří instanci příslušné třídy a nastaví její parametry hodnotami načtenými z databáze.
Metoda může sloužit k dodatečné kontrole integrity instance entity. Příklad: Máte uložený nějaký lokalizovaný obsah (je jedno zda jde o články, či produkty e-shopu a podobně) a do systému přibyla nová lokalizace. Váš klient se například chystá expandovat na další trh. V takové situaci je nutné prověřit, zda má entita nachystané všechny potřebné lokalizované verze a pokud ne, tak chybějící lokalizaci doplnit.
Nepochybuji, že vás napadne další využití. Ale je třeba pamatovat, že toto je potenciálně problematické místo aplikace. Načtení musí být vždy maximálně možně rychlé.
beforeSave(): void
Metoda se volá před tím než začne proces ukládání dat do databáze.
afterAdd(): void
Tato metoda je volána po té co byl ukončen proces ukládání - konkrétně přidávání zcela nového záznamu. V momentě kdy je metoda volána je proces zcela ukončen, jsou vygenerovány identifikátory a entita se nachází v novém stavu.
afterUpdate(): void
Podle názvu metody je patrné, že se volá po úpravě již existujícího záznamu - tedy metoda se volá po ukončení procesu úpravy existujících záznamů v databázi.
afterDelete(): void
A samozřejmě nesmí chybět metoda, která se volá po dokončení smazání záznamu (záznamů) entity v databázi. V této metodě je možné například odstranit související soubory, nebo smazat entity, které se smazanou entitou souvisí, ale jsou provázány pouze vnější relací. Prostě se jedná o úklid po smazání ...