A.P.Hacker:Asi si nerozumíme. Samozřejmě, pokud uděláš ORM turingovsky úplný, tak s ním vyjádříš jakékoli SQL. Ale - omlouvám se, že se opakuju - kde máš bussines logiku?
- Pokud v databázi, tak to není ORM. ORM je object relation mapping. Pokud máš bussines logiku v DB, tak máš objekty v databázi. To, na co je mapuješ vlastně nejsou "objekty", nemají na APP rovině logiku a objekt tvoří data+logika. V takovém případě podle mne opravdu nejde o ORM, ale o QueryBuilder. Který je samozřejmě užitečný a potřeba.
vzdy bude cast logiky v aplikaci a jina cast v databazi, nikdy nebude vse v databazi, neznamena to, ze se neco duplikuje.
- Pokud v APP, tak máš problém s jakýmikoli hromadnými operacemi. Např. primitivní nastavení vlastnosti: když uděláš "UPDATE cars SET color = 'green'", ale v APP logice budeš mít u některých aut zákaz je nazelenit, tak to rozbiješ, protože tu APP logiku rozbiješ.
Situaci, kdy se používá mix přístupů výše jsem už komentoval.
jeste jednou, ORM je (mimo jine) lepsi QueryBuilder, ktery vyuziva informace z definice modelu
- Pokud v APP, tak máš problém s jakýmikoli hromadnými operacemi. Např. primitivní nastavení vlastnosti: když uděláš "UPDATE cars SET color = 'green'", ale v APP logice budeš mít u některých aut zákaz je nazelenit, tak to rozbiješ, protože tu APP logiku rozbiješ.
Situaci, kdy se používá mix přístupů výše jsem už komentoval.
proc bych psal SQL update rucne? Jeste jednou, kazde ORM umi vygenerovat validni batch update dotaz.
[/list]