Newsgroup: it.comp.java
Titolo: Hibernate [Consigli]

Ho fatto dei test con hibernate e mi e' sembrato veramente 
una cosa spettacolare...
Tuttavia volevo sapere quanto valesse la pena implementarlo 
in un progetto di media grandezza.
Qualcuno se ha fatto gia' progetti piuttosto importanti 
tramite hibernate mi saprebbe dire se ha incontrato 
problematiche rilevanti?
Inoltre un framework di quella portata mi fa pensare che 
possa appensantire l'applicazione e' cosi'?
grazie per eventuali risposte.
Ciao

Ciao,
	Io l'ho utilizato per un progetto di media grandezza e le mie 
impressioni sono molto positive.
Le uniche considerazioni che mi sento di segnalare sono le seguenti:
1. mancanza di tools di sviluppo visuale integrati durante la fase di design
2. richiede un periodo di apprendimento di almeno un paio di settimane 
per diventare produttivi ed in particolare è necessario aver appreso i 
patterns su cui è basato
3. in caso di modifiche alla base dati non sempre è agevole modificare i 
bean di conseguenza, in particolare quando cambiano le relazioni tra le 
verie entità
4. E' vero non è leggerissimo ma semplifica un sacco la vita ed il 
meccanismo del lazy-load se implementato come si deve funziona 
egregiamente. Poi vao considerato che viene caricato una volta sola 
quando parte l'applicazione poi gli unici limiti prestazionali sono dati 
sal server su cui gira
5. Personalmente ho avuto seri problemi in caso di applicazioni 
multi-thread dovuti al lazy-load
spero di esserti stato utile
-- 
Mess
http://www.mibmagazine.it


La mia personale esperienza con Hibernate su un applicativo di dimensioni 
medio-piccole (circa 400 pagine jsp) č stata quantomeno "drammatica" per una 
serie di motivi fra cui i seguenti:
1) E' uno strumento molto complesso, quindi se no lo si conosce bene si 
richia di fare della castronate tremende (tipo lazy-loading o altre features 
varie).
2) Non ho personalmente apprezzato il concetto di Object Relational Mapping, 
in quanto ti obbliga a vedere un database relazionale come una serie di 
oggetti, uno innestato deltro l'altro (se hai delle foreign key, per es 
l'anagrafica cliente contiene un oggetto provincia e non un campo provincia 
di tipo stringa). Io prtefereisco sapere che sotto c'č un database che non č 
una cosa ad oggetti e quindi voglio gestirlo come tale.
3) Devi impararti un nuovo linguaggio che č l'HQL (molto dimile all'SQL 
comunque).
4) Altri problemi vari causati dal fatto che il framework ti nasconde cosě 
tanto il database sottostante che se devi fare qualche "trucco" per 
aumentare le performance (tipo richiamare una stored procedure o creare 
tabelle temporanee) č sempre un casino gestirlo.
Le cose carine invece sono:
1) Genera SQL ottimizzato per il tipo di database sottostante.
2) Gestisce in automatico l'optimistic locking.
In sostanza, sempre a mio avviso, sono piů gli svantaggi che i vantaggi.
Fortunatamente ora uso iBatis (con Spring) e devo dire che č tutto un'altro 
mondo :-)
D.

> La mia personale esperienza con Hibernate su un applicativo di dimensioni
Visto la tua esperienza, Hiber potrebbe essere bucato per Oracle7. Non mi
vuole vedere il 7............ perche?
java.sql.SQLException: ORA-01010: invalid OCI operation
Uso il driver  ojdbc14.jar!!!!!


Ti suggerisco di cercare o chiedere sul forum di Hibernate, in genere sono 
sempre molto disponibili.
Io non penso che Hibernate sia un prodotto "bucato" (ne più ne meno di 
altri).
Dicevo solo che lo trovo troppo complesso, e in generale credo che astragga 
troppo dal database sottostante impedendoti di sfruttarlo al meglio.
Ciao,
D.