Predstavte si entitu A, ktora ma v sebe referenciu na entitu B s anotaciou
@OneToOne(fetch=LAZY).

Ked nacitate objekt A pomocou Hibernate, za normalnych okolnosti nebude
proxiovany. Proxy reprezentuju len vnutorne referencie na objekty, ktore su
natahovane lazy - v nasom pripade B. @OneToOne a @ManyToOne proxiuje Entity
objekt, @ManyToMany a @OneToMany proxiuje Collection. Ten zapuzdrujuci
objekt A by bol proxy, keby sme priamym pristupom na jeho getter chceli
nacitat lazy data. To vsak nie je bezne: nenacitavame predsa meno osoby lazy
modom...
Cele to smeruje k tomu, ze kludne mozete pristupit na lazy referenciu B
reprezentovanu proxy objektom a na nej dokonca na jej ID, ktore bude
inicializovane. To je vdaka tomu, ze ID je dostupne v ramci tabulky, ktoru
tym zapuzdrujucim objektom A mapujete a ta si toto ID natiahne. Kludne
mozete tento lazy objekt B pouzit pri vytvarani novych dotazov. Vsetko bez
toho, aby bol dodatocne natiahnuty! Load nastane az v momente ak pristupite
na nejaky getter objektu B...

2010/3/11 Roman Pichlík <roman.pich...@gmail.com>

> > Ne často, vždy :-)
> > Je to základní princip fungování Hibernate.
>
> to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba
> napr. lazy loading.
>
> --
> S pozdravem Roman "Dagi" Pichlik
>
> /* http://www.sweb.cz/pichlik/ Blog pro kodery */
>

Odpovedet emailem