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 <[email protected]> > > 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 */ >
