Newsgroup: it.comp.java
Titolo: Hibernate, Torque e altro...

Salve a tutti...
Come funzionano Hibernate e Torque?
Non mi interessano manuali di riferimento ma solo se essi lavorano come
TableGen 1.8 che genera codice java mappando una tabella in *unica* classe
java (che possiede (insert(), retirieveByKey(), ecc..) e partendo
semplicemente dalla url del database.
Hibernate e Torque mi sembra che usino + file per una tabella, dico giusto??
Ma soprattutto *come* generano codice? Mi è sembrato di capire che devo
creare dei file XML di mapping, sbaglio? (se questa è vero non capisco bene
quale siano i benefici che da se mi devo prima mappare tutto a mano con
XML!?!?!)
Grazie mille a tutti

 ha scritto nel messaggio 
news:cp4mr1$mb0$1...@carabinieri.cs.interbusiness.it...

Torque non lo conosco. Hibernate non genera codice per gestire gli accessi 
al database. Il codice viene generato a runtime invece.
I file di configurazione xml, permettono configurare l' ambiente sul quale 
lavora in modo tale da generare le query sql corrette. E' uno strumento 
molto potente, e credo questo approccio sia infinitamente migliore dei 
generatori di classi Manager come quello che hai menzionato e anche sql2java 
(che avendo provato a usarlo tempo addietro sconsiglio proprio!). 

Andrea B. wrote:

ho visto la risposta su Hibernate, io ti diro' di Torque
io Torque l'ho usato in questo modo:
1) scrivo un file xml che mi definisce lo schema del database e il mapping
   (vedi 
http://db.apache.org/torque/tutorial/step2.html
 ma in generale
tutto il tutorial)
2) per mezzo di torque generator genero il file sql che mi permette di
creare le tabelle (e quanto altro mi serve, ad esempio sequenze)
3) sempre per mezzo del generator genero le classi. Torque genera 5 classi
per ogni tabella. Supponiamo che la tabella si chiami PIPPO, le classi
sono:
  a) BasePippo
  b) Pippo
  c) BasePippoPeer
  d) PippoPeer
  e) PippoMapping
 l'ultima contiene informazioni per mappare i campi della tabella in quelli
della classe (quindi la si ignora praticamente sempre, e' a uso interno del
runtime di torque)
le classi base contengono tutta la logica di trasferimento dati da oggetto a
db e viceversa, non devono essere toccate
le classi Pippo e PippoPeer sono invece ad uso e consumo dello sviluppatore,
derivano le corrispondenti Base e sono il posto dove lo sviluppatore mette
logica custom.
il generatore non sovrascrive mai le classi Pippo e PippoPeer, si limita a
crearle se mancano (mentre le altre 3 vengono rigenerate per intero dal
generatore quindi modificarle significa perdere il proprio lavoro!)
la differenza fra Pippo e PippoPeer e' che la prima offre operazioni sul
singolo record mentre la seconda operazioni globali alla tabella (come
select di oggetti pippo in base a where, etc.)
il *come* e' un po' ambiguo. cmq Hibernate lo fa a runtime, mentre Torque
staticamente (cioe' con ant o un makefile invochi il generatore, quindi
compili il tutto e fai girare l'applicazione). se per come intendi come si
invoca il generatore prima leggiti la documentazione poi se ne riparla.
byeT

 tutto il tutorial)
Ecco: ma nel caso che il mio DB già esista, non c'è niente che ti butti giù
almeno una bozza iniziale con tutto il mapping con quache default?
Se drvo fare tutto a mano... a me sembra molto scomodo...

Quindi si finisce sempre per lavorare con Pippo  e PippoPeer? (senza mai
usare direttamente le Base)
e le Mapping a che servono?
Grazie

 Grazie