Sono un fan di ORM - Object Relational Mapping e l'ho usato con Rails da un anno e mezzo. In precedenza, utilizzo le query non elaborate con JDBC e faccio in modo che Database esegua il sollevamento pesante tramite Stored Procedures. Con ORM, inizialmente ero felice di fare cose come coach.manager
e manager.coaches
che erano molto semplici e facili da leggere.Svantaggi del mapping relazionale degli oggetti
Ma con il passare del tempo c'erano numerose associazioni che si avvicinavano e ho finito per fare a.b.c.d
che sparavano domande in tutte le direzioni, dietro le quinte. Con le rotaie e il rubino, il netturbino è impazzito e ha impiegato pazzesco tempo per caricare una pagina molto complessa che comporta dati relativamente minori. Ho dovuto sostituire questo codice di stile ORM con una semplice procedura memorizzata e il risultato che ho visto era enorme. Una pagina che impiega 50 secondi per caricarsi ora richiede solo 2 secondi.
Con questa enorme differenza, dovrei continuare a utilizzare ORM? È molto chiaro che ha overheads severi rispetto a una query non elaborata.
In generale, quali sono le insidie generali dell'utilizzo di un framework ORM come Hibernate, ActiveRecord?
Stai utilizzando il recupero pigro? Fondamentalmente 'ORM' carica tanto quanto tu dici ... –
@Petar Minichev: Beh, non posso dire una risposta diretta a questo poiché sto facendo tutti i tipi di riprese che l'ORM mi consente. C'è un po 'di compromesso ovunque – bragboy