Newsgroup: it.comp.java
Titolo: 2° chance: hibernate e logica

supponiamo di avere una superclasse pippo mappata con relativa tabella
tramite hibernate.
Supponiamo che SUCCESSIVAMENTE identifichiamo una sottoclasse di pippo
pippetto.
Ora, a livello logico, come faccio a caricare un oggetto pippo e
salvarlo come oggetto pippetto?



Io sono nuovo su hibernate ma ci provo... forse pippetto puo essere
mappato su pippo con una component, una subclass o una joined-subclass,
dipende da quello che effettivamente si deve fare, dichiarando il tutto
nella classe persistente(in questo caso pippo)
Basta? ;)
crx

crx ha scritto:

ahimè no...:(
il problema non è di mappaggio, ma forse mi sono spiegato male.
Il fatto è che la tabella relativa a pippo non solo è già stata mappata, 
ma anche parzialmente popolata.
Si tratta di prendere alcuni oggetti pippo e conferire loro la natura di 
pippetto salvandoli poi nella relativa tabella aggiunta e mappata come 
joined-subclass.
Cioe caricare un oggetto pippo, Castarlo, se fosse possibile, in 
pippetto e renderlo persistente poi mantenendo tutti i collegati con le 
altre tabelle invariate.
C'è da aggiungere che pippo, e quindi pippetto, hanno un id assegnato in 
automatico dal dbms

Non ho ben capito che vuoi fare... non ho mai usato le joined-subclass
ne subclass
Non ho capito tu che usi
una (joined-sublcass) prevede che la sottoclasse di cui parli abbia una
sua tabella separata da quella della superclasse e un'associazione
one-to-one sulla chiave primaria.
L'altra invece (subclass) serve solo ad aumentare gli oggetti 'che
formano la tabella'
dai un'occhiata qui
http://www.hibernate.org/hib_docs/reference/it/html/inheritance.html
ciao
FinallyDoc Semi True Serg1 ha scritto:


scusa non avevo letto l'ultima parte del post
situazione:
Pippo con .hbm su una tabella
vuoi aggiungere una joined-subclass a Pippo (pippetto)
Non so se la faccio semplice ma io mi creerei pippetto e lo rimappo su
pippo.hbm come joined-subclass. Basta poi che ti ritiri su Pippo per
riprenderti pippetto
Polymorphic queries
A query like:
from Cat as cat
returns instances not only of Cat, but also of subclasses like
DomesticCat. Hibernate queries may name any Java class or interface in
the from clause. The query will return instances of all persistent
classes that extend that class or implement the interface. The
following query would return all persistent objects:
from java.lang.Object o
The interface Named might be implemented by various persistent classes:
from Named n, Named m where 
n.name
 = 
m.name
Note that these last two queries will require more than one SQL SELECT.
This means that the order by clause does not correctly order the whole
result set. (It also means you can't call these queries using
Query.scroll().)
asd ha scritto:


sei un principiante è! studia studia
asd ha scritto:


 
Credevo di essere stato chiaro, ma evidentemente non mi so spiegare.
Il problema non è di mapping, nè di caricamento.
In runtime supponiamo di caricarmi un oggetto pippo dal db e poi di
volerlo salvare come pippetto.
Il problema è questo, perchè hibernate dice che non si puo' fare.


non hai capito la questione

 > sei un principiante è! studia studia



Miiiiiiiiiiiiiiiiiiiiiiiiiiiiiii il problema non è di mapping!!!

Ma pippetto è la sottoclasse di Pippo, come puoi salvare un pippo come
un pippetto?
Puoi salvare pippetto come pippo, ma non viceversa! vedrai che
hibernate si scazza per quello..
Finally Doc SemiTrue Serg1 wrote:


 
E lo so che è per quello.
Vorrei caricare pippo, conferirgli lo status di pippetto ergo salvarlo.
Mi sa che non si puo' fare, no?

Hai scritto : "Cioe caricare un oggetto pippo, Castarlo, se fosse
possibile, in
pippetto e renderlo persistente poi mantenendo tutti i collegati con le
altre tabelle invariate. "
Non puoi castare pippo in pippetto!
Il problema è lì.
Poi come funziona hibernate per le classi derivate, mi piacerebbe
saperlo! Lo sto utilizzando da poco.
ciao
FinallyDoc Semi True Serg1 wrote:


 
Cmq grazie per l'aiuto.

> Il problema è questo, perchè hibernate dice che non si puo' fare.
Anch'io uso hiber, ho un prob, mi devo collegare a oracle 7, hiber non ne
vuole sapere.
perche?

 
l'hai configuarto male?

> l'hai configuarto male?
No perche con oracle8, mysql tutto ok
L'errore con oracle 7  č:
Error
Mon Oct 09 10:36:03 CEST 2006
org.hibernate.exception.GenericJDBCException: Getting database metadata
Error
Mon Oct 09 10:36:03 CEST 2006
java.sql.SQLException: ORA-01010: invalid OCI operation

 L'errore con oracle 7  è:


Cha siano driver diversi?
uso ojdbc14.jar perche classes11 da errore.
che driver intendi?

guarda sinceramente non saprei.. però mi è capitato di avere problemi
con hibernate e oracle, cambiati i driver (da classes12 a ojdbc14.jar)
tutto ha funzionato, ma vedo che sono già quelli che utilizzi tu..
ciao


 uso ojdbc14.jar perche classes11 da errore.
come vedi utilizzo ojdbc14.jar!!!!!
E possibile che con orace7 hiber non va?