SessionFactory hibernált 4 kezdőknek - verem túlcsordulás az orosz

De ahogy bemutattam:

Ha van valaki, aki elmagyarázza a különbséget a megközelítések és mi minden módszer nagyon hálás lesz.

Az első esetben nem értem, ha a konfigurációs beállítások adunk? És a második nem értettem pontosan, hogyan kell beállítani tulajdonságait. Megértem új konfiguráció (). AddProperties (tulajdonságok). megegyezik az új konfiguráció (). konfigurálhatók ( „hibernate.cfg.xml”)

Ha tévedek javítsd: az első, a Tulajdonságok properties = new Properties ();. És akkor már az eljárás put (), hogy adjunk a különböző tulajdonságokkal rendelkeznek.

állítsa január 5 '16 at 20:23

Minden esetben a SessionFactory épült három lépésből áll. 1), így vagy úgy, hogy egy konfigurációs. 2) A konfiguráció építeni StandardServiceRegistry alkalmazásával StandardServiceRegistryBuilder-a. 3) szerint StandardServiceRegistry építeni SessionFactory használatával a konfiguráció. Az utóbbi esetben, valószínűleg tévedés. Ahelyett visszaút új konfiguráció (). Konfigurálása (). BuildSessionFactory (standardServ‌# 8203; iceRegistry); Valószínűleg kellett írni visszaút cfg.buildSessionFactory (standardServiceRegistry); - Sergey január 6. '16 at 06:48

. @ AleksandrTischenko új konfiguráció () addProperties (tulajdonságok) nem azonos az új konfiguráció () configure ( "hibernate.cfg.xml") -. V.ladynev január 17 '16 at 00:24

Alternatív konfigurációs hibernate.cfg.xml és hibernate.properties. Meg kell dolgozni minden felforgatás 4 Hibernate helyesen.

hibernate.cfg.xml kiolvasott itt configuration.configure ()

Ez applySettings (configuration.getProperties ()) van szükség annak érdekében, hogy ne veszítse el a tulajdonságait hibernate.cfg.xml (ezt a fájlt a tulajdonságokat, valamint hibernate.properties). Például, ha van ingatlan nem szerepel (és általában ott nincsenek megadva), akkor ez elég e

Általában, ez a csúnya bütyköl ServiceRegistryBuilder annak a ténynek köszönhető, hogy a további konfigurációs tuning hordozott egy külön osztályt, és buildSessionFactory () meggondolatlanul tett @Deprecated.

A Hibernate 5 általános akartam dobni Configuration osztály és lépni beállításával és használatával StandardServiceRegistryBuilder MetadataSources. A javadocs Configuration Hibernálás 4.3

Megjegyzés. Ez váltja használata StandardServiceRegistryBuilder és MetadataSources helyett után 4.0 kiadás amely ponton ez az osztály lesz elavult, és tervezett eltávolítás 5.0. Lásd HHH-6183, HHH-2578 és HHH-6586 részletekért

Továbbá, Hibernate 5, nyilván ez a gondolat volt, elhagyott, és ezt a megjegyzést a dokumentációban Konfiguracio sem.

hibernate.properties ofszet perverz módon egy statikus osztály kezdőérték Környezet. Ez az első alkalom, hogy elérhető. Ez valószínűleg folyik itt új konfiguráció ().

Ez csak akkor fog működni verzióról hibernált 4.3, mert csak ez a változat létezik StandardServiceRegistryBuilder osztályban. Akkor schiat hogy StandardServiceRegistryBuilder - ez ugyanaz, mint a ServiceRegistryBuilder. Kezdve 4.3 verzió ServiceRegistryBuilder került ide sorolva @Deprecated. és annak teljes tartalmát másolták StandardServiceRegistryBuilder.

beállítani () metódus nem nevezett, ennek megfelelően információt a leképezés a hibernate.cfg.xml fájlt nem kell számolni. Általában ez a megközelítés lehet tekinteni, mint egy részleges változata a harmadik megközelítés.

Ez a megközelítés működik helyesen verzió óta hibernált 4.3 (mivel a már említett StandardServiceRegistryBuilder). De ez tartalmazza az elbocsátások által említett @Sergey. Ha eltávolítja a redundanciát, akkor ezt a lehetőséget kell csökkenteni

Ez ugyanaz, mint az első megközelítés, mert StandardServiceRegistryBuilder - ez ugyanaz, mint a ServiceRegistryBuilder.

Hogyan kell csinálni a helyes dolgot

A helyes dolog itt,

Ennek fő oka, véleményem szerint az a tény, hogy minden vysheperichislennye megközelítések összes (!) A munkához való jog a Hibernate 5. További részleteket elolvashatja itt.

Bár buildSessionFactory () nyilvánították @Deprecated hibernált 4, 5 hibernált ő gashes vissza! Ennek megfelelően a fenti kódot helyesen fog működni az összes változatának Hibernate.

Megadása az útvonalakat, hogy a konfigurációs fájlok

Kapcsolódó cikkek