Tomáš Procházka wrote:

Ahoj,
odpovídám na zprávu z pátku, 22. září 2006,
kterou Radim Tlustý napsal v 11:26:39:

Ještě na jednu otázku jsem ale nenašel řešení, když dělám desktopovou aplikaci, 
která bude mít svou integrovanou databází? Je lepší použít po celou dobu jeden 
entity manager, nebo volat emf.createEntityManager() pokaždé, když je potřeba 
něco udělat?

Pouzit Hibernate pro desktopovou aplikaci je ponekud nepohodlne a je s tim dost problemu. Aby to fungovalo, musite napsat 2,5 vrstvou aplikaci s duslednym oddelenim DAO (byznys) vrstvy od GUI aplikace.

Priklad problemu, mam objekt, jehoz zobrazeni a chovani (napriklad co vidim v kontextovem menu) ve stromecku zavisi na 5 many-to-one atributech. Kdyz takovych objektu chci v tom stromecku mit 5000, tak bych pri praci s nimi musel provest radove 5000 dotazu do databaze... - nelze mit moc objektu v jedne session, protoze pak se jakakoliv prace s ni zpomaluje
- nelze mit session otevrenou prilis dlouho
- nelze tedy pouzivat lazy inicializace
- po jakekolich vyjimce je session neplatna a nelze ji dal pouzivat

Takze resni tohoto jednoho problemu je takove, ze se pomoci HQL select new ValueObjekt(.....) from ..... nacitaji data potrebna pro zobrazeni ze vsech 6 potrebnych tabulek (napr. se i pocita poce synu...) v jednom dotazu.

  Lukas

Odpovedet emailem