Zdravím!
Také jsem se s tím setkal a dospěl jsem k závěru, že to jinak vyřešit nejde.
U JBOSSu fungovala Lazy inicializace.
Ta způsobila to, že se prostě podřízené entity nenačítaly.
Problém vznikl až v místě, kde jste potřeboval přistupovat k podřízeným
entitám.
V tu dobu to vyhodilo výjímku.
Vyřešit se to dalo prostě tak, že jsem si napsal další metody, které
načítaly podřízené entity -
např:
public List<Employee> findEmployeesByCompanyId(int id);
U Glassfishe to je ještě horší - tam LAZY inicializace vůbec nefunguje.
Musí se použít všude EAGER.
Další možnost je použít DTO(data transfer object), který nežádoucí
podřízené entity vůbec neobsahuje.
- to jsem ovšem ještě nezkoušel.
Jde o to, že EJB očekává práci s Remote rozhraním.
Tedy pokud načtete entitu a přenesete jí přes RMI, tak na straně klienta
již není možné načíst podřízené entity.
Je možné, že se mýlím - to bych byl docela rád ;-)
Fafi
Schaumann Jan napsal(a):
Ahoj vsichni,
v me webobe aplikaci resim pristup k db pres EJB.
V db mam tabulku UZIVATEL(id, misto_id,....) a MISTO(id, nazev)
Problem nastava ve chvily kdy mam hodne uzivatelu(1000), a chci je vypsat na
obrazovku.... tak se mi pro kazdeho uzivatele provede SELECT s jeho misto_id do
tab. MISTO. A TO JE STRASNE POMALE!
je to obdoba lazy vazby jako jsou v Hibernate, ale tam se da nastavit hodnota,
napr. na 2 a pak se dostanu na nazev mista aniz bych delal SELECT....
Nevite jestli to je i u EJB? nobo nevite o nejake cache?
predem dekuji....
Schaumann Jan
________________________
Tel: 737 158 658
E-mail: [EMAIL PROTECTED]
ICQ: 217-356-730