(Entity-Repository-Mapper) co vse ma ulozit metoda save v ramci mapperu?
- zac24
- Člen | 41
Metoda uloz v mapperu prislusnemu k entite by mela ulozit jen prislusnout entitu nebo by mela vyvolat tutez metodu pro ulozeni i v ramci vsech podrizenych entit nebo jejich kolekci s vyuzitim jejich mapperu ? (typicky prakticky priklad clanky a prilohy). Jaky je best practice?
Editoval zac24 (12. 5. 2015 10:26)
- zac24
- Člen | 41
protoze v nich zmena nastat mohla ? Totiz mozna to delam cele spatne, ale v ramci entity clanek mam vlastnost prilohy (byt ta neni obrazem tabulkoveho sloupce) a to je vlastne kolekce kterou vrati metoda vratPodleClanku repozitare priloh … pak vlastne mohu entity zanorovat a bez potizi upravit pirlohu uvnitr entity clanku a pozadat o ulozeni clanku. V takovem pripade kde jsem upravil prilohy v ramci entity clanku bych od metody ulozeni ocekaval ze jaksi bude to zanoreni ctit a zavola ukladaci metody vsech zanorenych entit z jejich vlastnich repozitaru.
Editoval zac24 (12. 5. 2015 11:54)
- Oli
- Člen | 1215
Jestli otázku chápu správně, tak si myslím, že to je zbytečný. Zejména tahle myšlenka mě přijde zbytečná/špatná
protoze v nich zmena nastat mohla ?
Vždyť přece víš, jestli nastala nebo nenastala změna v přílohách. Edituješ článek a víš, jestli byly změněný přílohy. Používám Doctrine a v ní to řeším v zásadě nějak takhle:
// some magic with entity $article
// Uložím změny v entitě Article do paměti
$this->entityManager->persist($article);
if ($values->attachement)
{
// some magic with $attachement
// uložím změny na entitě Attachement do paměti
$this->entityManager->persist($attachement);
}
// Odešlu všechny změny z paměti do databáze
$this->entityManager->flush();
- David Kudera
- Člen | 455
Pokud updatuješ, tak je volání persist zbytečné . Teda ne vždy, podrobnější vysvětlení v dokumentaci